首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我正在使用Apache POI读取excel文件。无法读取日期。在excel中,日期格式2017-03-15 6:00(单元格format=custom) &使用poi,读数为42809.25

Apache POI是一个用于操作Microsoft Office格式文件的Java库。它提供了一组API,可以读取、写入和操作Excel、Word和PowerPoint文件。

在使用Apache POI读取Excel文件时,遇到无法读取日期的问题,可能是因为日期在Excel中以数字形式存储,而不是以常见的日期格式显示。在Excel中,日期被存储为自1900年1月1日以来的天数。因此,42809.25实际上代表了2017年3月15日的日期和时间。

要正确读取日期,可以使用Apache POI提供的日期格式化工具类来将数字转换为日期格式。以下是一个示例代码:

代码语言:txt
复制
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ExcelReader {
    public static void main(String[] args) {
        try {
            FileInputStream file = new FileInputStream("path/to/your/excel/file.xlsx");
            Workbook workbook = new XSSFWorkbook(file);
            Sheet sheet = workbook.getSheetAt(0);
            Row row = sheet.getRow(0);
            Cell cell = row.getCell(0);

            if (cell.getCellType() == CellType.NUMERIC) {
                double numericValue = cell.getNumericCellValue();
                Date date = DateUtil.getJavaDate(numericValue);
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                String formattedDate = dateFormat.format(date);
                System.out.println("Formatted Date: " + formattedDate);
            }
            
            workbook.close();
            file.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例代码中,我们首先打开Excel文件,然后获取第一个工作表、第一行和第一个单元格。然后,我们检查单元格的类型是否为数字类型。如果是数字类型,我们使用DateUtil.getJavaDate()方法将数字转换为Java的Date对象。最后,我们使用SimpleDateFormat类将日期格式化为"yyyy-MM-dd HH:mm"的字符串形式。

这样,你就可以正确地读取Excel中的日期数据了。

腾讯云提供了一系列与云计算相关的产品和服务,包括云服务器、云数据库、云存储、人工智能等。你可以根据具体需求选择适合的产品。以下是一些腾讯云产品的介绍链接:

请注意,以上链接仅供参考,具体选择产品时应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java 实现文件批量导入导出最佳实践(兼容xls,xlsx)

HSSForg.apache.poi.hssf.usermodel包。...: 错误信息表 XSSForg.apache.xssf.usemodel包,并实现Workbook接口,用于Excel文件的.xlsx格式 常用组件: XSSFWorkbook : excel的文档对象...3、代码操作 3.1 效果图 惯例,贴代码前先看效果图 Excel文件两种格式各一个: ? 代码结构: ? 导入后:(导入了两遍,没做校验) ? 导出效果: ?...sheet,对应Excel文件的sheet HSSFSheet sheet = wb.createSheet("Sheet1"); // 第三步,sheet添加表头第...实际应用中导出的Excel文件往往需要阅读和打印的,这就需要对输出的Excel文档进行排版和样式的设置,主要操作有合并单元格、设置单元格样式、设置字体样式等。

4K41

Java数据可视化:报表技术

简单的说:报表就是用表格、图表等格式来动态显示数据,可以用公式表示:“报表 = 多样的格式 + 动态的数据”。...,导入资料文件准备好的《user_management》项目 第三步:启动引导类,浏览器访问 http://localhost:8080/list.html 2、Excel说明 企业级应用开发,...4.1、POI操作Excel高低版本区别 POI包中有如下几个主要对象和excel的几个对象对应: | 对应excel名称 | 低版本的类名 | 高版本的类名 | | :------------...4.2、实现用户数据的导入 4.2.1、需求 把资料中的《用户导入测试数据.xlsx》文档的数据导入到系统, 内容如下: 数据的导入就是读取excel的内容,转成对象插入到数据库 4.2.2 、...最终的目标就是读取每一行数据,把数据转成用户的对象,保存到表 实现的步骤:1、根据上传的文件创建Workbook ​ 2、获取到第一个sheet工作表 ​ 3、从第二行开始读取数据 ​ 4、读取每一个单元格

2.6K40
  • 报表技术

    简单的说:报表就是用表格、图表等格式来动态显示数据,可以用公式表示:“报表 = 多样的格式 + 动态的数据”。...,导入资料文件准备好的《user_management》项目 第三步:启动引导类,浏览器访问 http://localhost:8080/list.html 2、Excel说明 企业级应用开发,...4.1、POI操作Excel高低版本区别 POI包中有如下几个主要对象和excel的几个对象对应: | 对应excel名称 | 低版本的类名 | 高版本的类名 | | :------------...4.2、实现用户数据的导入 4.2.1、需求 把资料中的《用户导入测试数据.xlsx》文档的数据导入到系统, 内容如下: 数据的导入就是读取excel的内容,转成对象插入到数据库 4.2.2 、...最终的目标就是读取每一行数据,把数据转成用户的对象,保存到表 实现的步骤:1、根据上传的文件创建Workbook ​ 2、获取到第一个sheet工作表 ​ 3、从第二行开始读取数据 ​ 4、读取每一个单元格

    2.6K30

    Apache POI使用详解

    大家好,又见面了,是你们的朋友全栈君。 分享一个朋友的人工智能教程(请以“右键”->”新标签页打开连接”的方式访问)。比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看。...一 :简介 开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库,操作Excel目前有两个框架,一个是apachepoi, 另一个是 Java Excel Apache...由于apache poi 项目中用的比较多,本篇博客只讲解apache poi,不讲jxl 二:Apache POI常用的类 HSSF - 提供读写Microsoft Excel XLS格式档案的功能...HSMF - 提供读Microsoft Outlook格式档案的功能。 开发我们经常使用HSSF用来操作Excel处理表格数据,对于其它的不经常使用。...HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件

    4.3K10

    POI解析单元格格式

    cell.getCellStyle().getDataFormat();根据这个值进行时间、日期格式的判断; POI读取出来的结果也是有些变化的;需要在实际项目中进行确认; 日期格式的遍历:Excel2007...和Excel2003都是这样的结果; 时间格式的遍历: 增加了其它日期格式的处理: // 读取cell单元格的值,如果日期格式,进行转换 @SuppressWarnings("deprecation...单元格设置文本,但是存储数字的读取到的字符串2.123E5之类的指数类型,所以笔者选择上面的处理方式将非日期单元格先强制设置文本格式,然后按照文本格式读取!...} double value = cell.getNumericCellValue(); Date date = org.apache.poi.ss.usermodel.DateUtil.getJavaDate...getCellValue方法之前不用设置该单元格格式,否则解析有可能不成功(因为你不知道单元格格式,除非你采用getCellValue方法内部的方式判断--冗余代码)。

    75410

    POI操作Excel入门案例(Spring boot)

    一、简介 Apache POIApache软件基金会的免费开源的跨平台的 Java API,POI提供API给Java程序对Microsoft Office格式Excel、WORD、PowerPoint...二、POI结构说明 HSSF:提供读写Microsoft Excel XLS格式档案的功能。 XSSF:提供读写Microsoft Excel OOXML XLSX格式档案的功能。...("读取桌面文件的内容"); // System.out.println(read); } 执行结果: 桌面生成 testexcel.xls 文件 打开生成的 testexcel.xls...文件 3、Demo2:导入EXCEL表格 从本地导入EXCEL表格的内容,并将结果封装到List集合,为了方便阅读,这里把异常都抛出,实际情况下,应该对异常进行捕获,并进行处理; import...读取桌面文件的内容"); System.out.println(read); } 执行结果: 4、Demo3:通过web接口传递EXCEL表格 这个是集成spring boot里面的,

    51610

    史上最全excel导入导出技能盘点

    通过它我们能控制excel单元格的内容及样式的读取写入。但是正是因为他的细节之处导致我们开发起来代码很多。而且无法抽离。CSVcsv实际上就是一个文本,只不过通过office能够打开的一文本。...真正的excel对象如果通过普通的文本工具打开你会发现实际是一个二进制文件。因为csv是一个文本,所以在读写他的时候实际就是文本的读取。...没有POI的workbook、sheet、row 、cell 之说。所以读写的效率还是很快的。但是因为是文本所以我们无法控制单元格的样式。比如样式、加下拉框、合并单元格之类的。...,包括样式和数据格式设置ExcelWriter : 用于导出excel#notes系统时间1900 windowing 1900年日期系统 1904 windowing 1904年日期系统 Excel...map##writeFileUtils.createPoiFilesDirectory(); 初始化时创建临时缓存目录以避免POI并发写入错误正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖

    29610

    Java使用 POI 操作Excel

    但是批量导入需要代码解析固定格式的模板,因此我们最好给用户提供模板下载功能。我们同样以导入用户表例: 统一 excel 模板格式 ?...我们知道,Excel可以分为早期的 Excel2003版本(使用POI的HSSF对象操作)和 Excel2007版本(使用POI的 XSSF操作),两者对百万数据的支持如下: HSSFWorkbook...当百万数据级别的Excel 导出时,随着表格的不断创建,内存对象越来越多,直至内存溢出。Apache Poi 提供了 SXSSFWork 对象,专门用于处理大数据量 Excel 报表导出。...实例化 SXSSFWork 这个对象时,可以指定在内存中所产生的 POI 导出相关对象的数量(默认 100),一旦内存的对象的个数达到这个指定值时,就将内存的这些对象的内容写入到磁盘(XML 的文件格式...,读取excel的两种思路: 第一种:全部读取 优势:对excel的增删改查都方便 弊端:由于要加载完整合excel文件,如果文件过大时,对内存消耗严重 第二种:按事件触发 触发到什么事件,就读什么内容

    6K31

    Apache POI与easyExcel:Excel文件导入导出的技术深度分析

    导入Excel文件时,Apache POI会将整个文件加载到内存,然后提供API来访问和操作文件的各个元素,如单元格、行、列等。...导出Excel文件时,Apache POI同样需要将所有数据加载到内存,然后一次性写入文件。这种方式处理大量数据时可能会变得非常缓慢,并且需要大量的内存资源。...1.1 POI实现读取excel 下面是一演示如何使用 Apache POI 导入(读取)和导出(写入)Excel 文件(.xlsx 格式) org.apache.poi...方法使用DataFormatter类来确保无论单元格包含何种类型的数据(如数字、日期或文本),都能以合适的格式返回其字符串表示形式。...EasyExcel 是在在POI的解析引擎基础上改进的,但并没有完全重写 Apache POI 的整个解析引擎,特别是对于 XLSX 文件格式(即 Excel 2007 及以上版本所使用格式POI

    1.3K20

    超级简单POI导出Excel实战

    一般的生产管理系统都会将数据通过页面导出到Excel,这里以Java例通过第三方开源poi进行对Excel的操作,具体操作如下 1.引入jar包依赖 这里以maven的方式引入jar包,具体依赖如下...org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.FillPatternType; import org.apache.poi.ss.usermodel.Font...* @param headTitle Excel文件头信息 * @param sheetName Excel文件sheet名称 * @param response...name代表导出Excel列名称 @Excel orderNum代表Excel列排在第几列 @Excel replace一般数据库存的性别例如0和1,导出的值0展示男性,女展示女性 ’ 5.具体使用案例...:00:00', '226.55'); 5.2.写一个查询所有学生信息接口 这里不做限制,以自己项目所使用的技术实现查询信息即可,这里只贴出接口代码,具体实现按自己的业务场景进行实现 package com.sunny.spring.boot.poi.service

    2.8K81

    如何选择最适合您的Excel处理库?

    功能对比 读取功能 GcExcel和POI都能够读取Excel文件的数据、格式和图表,但GcExcel通过灵活的API设计提供了更简洁的读取接口,使得开发者能够更轻松地提取所需数据。...如POI打开文件需要使用到Java的File对象,需要把文件路径封装成File对象,之后POI才能打开。...GcExcel则简化这一过程,可以通过workbook对象open方法,直接传入文件路径,打开文件。 当遍历读取数据时,POI需要嵌套循环每个cell(单元格)。...POI不支持切片器,数据透视图,迷你图等功能,无法对这些功能进行修改。 写入功能 读写功能是Excel处理库最基本的两个功能,写入方面两者都支持写入数据、样式和公式到Excel文件。...条件格式 GcExcel和POI支持对单元格设置条件格式。 但POI并不支持自定义图标集,大于平均值,发生日期,前10项。 GcExcel可以支持所有Excel条件格式里的规则。

    20820

    EasyExcel太方便易用了,强烈推荐

    背景 系统中经常要导出大量的数据,格式基本上都是Excel,然而每次导表都是对系统内存的一次挑战。 Java领域,生成或解析Excel的框架比较有名的当属Apachepoi和jxl了。...EasyExcel是阿里巴巴开源的一个Excel处理框架,使用简单、节省内存。节省内存的原理也很简单,解析Excel时没有将文件数据全部加载到内存当中,而是从磁盘文件中一行行读取。...创建实体类 EasyExcel易用性的体现之一就是可以通过实体类中使用注解的形式,来与Excel的表头进行绑定。...@DateTimeFormat:用于日期格式化。 完成上述功能准备工作之后,我们先来生成一个Excel。...其他相关特殊用法 上面提到的@DateTimeFormat注解可转换日期格式,还有其他类似功能的注解和自定义转换器。

    3.7K20

    【在线教育】POI入门

    xls 文件读操作 3.2.5 xlsx 文件读操作 3.2.6 读取不同类型的数据 3.POI入门(了解) 3.1 POI 概述 3.1.1 简介 Apache POIApache软件基金会的开放源码函式库...excel2003 文件扩展名为 xls 名词: 工作簿:一个excel文件,就是一个工作簿 工作表:一个工作簿,可以所有多个工作表Sheet 行:每一个工作表,包含多行row...Workbook workbook = new HSSFWorkbook(); ​        // Excel工作簿建一工作表,其名为缺省值 Sheet0        //Sheet sheet...("文件生成成功");   } } 3.2.3 xlsx 文件写操作 excel2007+ 文件扩展名为 xlsx package com.zx.poi; ​ import org.apache.poi.hssf.usermodel.HSSFWorkbook...Workbook workbook = new XSSFWorkbook(); ​        // Excel工作簿建一工作表,其名为缺省值 Sheet0        //Sheet sheet

    1.3K30

    SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能

    @toc项目整体描述页面图简介:首页是一个index.html页面,长这样功能概括说明方法1:读取指定的Excel方法2:读取上传的Excel里面的内容方法3:java单文件导入Excel,保存到target...的表单) HSSFSheet sheet=wb.createSheet("成绩表"); //sheet里创建第一行,参数行索引(excel的行),可以是0~65535之间的任何一个...HSSFRow row1=sheet.createRow(0); //创建单元格excel单元格,参数列索引,可以是0~255之间的任何一个 HSSFCell...的表单) HSSFSheet sheet=wb.createSheet("教师表"); //sheet里创建第一行,参数行索引(excel的行),可以是0~65535之间的任何一个...HSSFRow row1=sheet.createRow(0); //创建单元格excel单元格,参数列索引,可以是0~255之间的任何一个 HSSFCell

    6800
    领券