导入excel数据时,日期格式(如2018/7/7)数据默认会被解析成double格式,解决方法如下:写一个公共类方法去校验并且转换正确的数值
package com.test.util;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
public class ExcelUtil {
* 解析POI导入Excel中日期格式数据
* @param currentCell
* @return currentCellValue
public static String importByExcelForDate(Cell currentCell) {
String currentCellValue = "";
// 判断单元格数据是否是日期
if ("yyyy/mm;@".equals(currentCell.getCellStyle().getDataFormatString())
|| "m/d/yy".equals(currentCell.getCellStyle().getDataFormatString())
|| "yy/m/d".equals(currentCell.getCellStyle().getDataFormatString())
|| "mm/dd/yy".equals(currentCell.getCellStyle().getDataFormatString())
|| "dd-mmm-yy".equals(currentCell.getCellStyle().getDataFormatString())
|| "yyyy/m/d".equals(currentCell.getCellStyle().getDataFormatString())) {
if (DateUtil.isCellDateFormatted(currentCell)) {
// 用于转化为日期格式
Date d = currentCell.getDateCellValue();
DateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
currentCellValue = formater.format(d);
} else {
// 不是日期原值返回
currentCellValue = currentCell.toString();
return currentCellValue;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.poi.ss.userm...
当将这些数据导出到Excel表格中时,可能会出现日期或时间格式不正确的问题,例如,日期和时间被转换为带小数点的数字。 Excel中的日期格式是特定的数字格式,可以使用Java代码将日期和时间转换为Excel日期格式,然后将其导出到Excel表格中。例如,日期为2021年6月23日,时间为12:00:00的时间戳表示为 44370.5,其中44370表示日期部分,0.5表示时间部分。 在将日期和时间导出到Excel表格之前,可以使用Java中的日期格式化类将其格式化为Excel可以识别的日期格式。
直接上代码
public static HSSFWorkbook getHSSFWorkbookTitle(String startTime,String sheetName,String [][]values, HSSFWorkbook workbook) throws IOException {
// 第一步,创建一个HSSFWorkbook,对应一个Excel文件
if(workbook == null){
workbook = new HSSF
合并单元格是指将表格中两个或多个位于同一行或者同一列的单元格合并成一个单元格的操作。本文将介绍如何使用Free Spire.XLS for Java在Excel文档中合并和取消合并单元格。基本步骤:1. 下载Free Spire.XLS for Java包并解压缩,然后将lib文件夹下的Spire.Xls.jar包作为依赖项导入到Java应用程序中。(也可直接通过Maven仓库安装JAR包(配置p...
然后在导出的实体类对应日期属性中加上下面的注解@ExcelProperty并在括号内引入刚刚添加的转换器。注意,我使用的easyexcel版本为3.0.2,如果easyexcel为3以下的版本,可参考这篇文章处理。这样处理后,导出的时间就转换为年月日了,
DateUtil.setParams("yyyy/MM/dd","yyyy-MM-dd");
DateUtil.formatExcelDate(ExcelImport.getTime())
DateUtil
public class DateUtil {
static pri.
1.Apache POI简介
开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中,操作Excel等。
Apache POl简介是用Java编写的免费开源的跨平台的Java APl,Apache POl提供APl给Java程式对Microsoftoffice (Excel、WORD、PowerPoint、Visio等)格式档案读和写的功能。POl为"Poor Obfuscation
lmplementation"的首字母缩写,意为“可怜的模糊实现”。
官方主页:h
java 导入excel文档 日期时间格式出错java.text.ParseException: Unparseable date: "44480.6633101852 ,完美解决问题描述:解决方法:
问题描述:
项目中有个需求是导入excel文档,文档中有个日期时间,开始导入时总是报错,如下图所示的错误:
解决方法:
在导入文件时,遍历每一行时加入如下方法:
public List<Map<String,String>> uploadFileParse(Sheet sheet,
java使用POI,导出带下拉框选择器,日期时间格式校验的Excel
文章目录java使用POI,导出带下拉框选择器,日期时间格式校验的Excel前言一、引用maven二、上代码1.ExcelTemplateBean 实体类2.ExcelTemplateUtil 工具类2. 使用2.1 普通导出:2.2下拉框限制,多级联动导出:2.3 合并单元格导出2.3 日期时间格式校验导出
需求java导出的Excel要添加指定列的下拉框限制。
提示:以下是本篇文章正文内容,下面案例可供参考
一、引用mav
当然这前提还是要看时间字段的单元格格式,就像前面所说的,自定义或时间类型的格式,POI就会把数据解析成其他格式,这个时候定义的dateFormat转换样式就需要与实际内容一致,否则解析时就会捕获到异常,那假设单元格格式是常规,则POI不会进行解析,读到是2022-08-16,解析出来也还是2022-08-16,则可以不进行转换。假设表格数据已经初步转换存储到ListdataList集合中,但存在部分时间字段的内容与表格的时间内容不一致,需要进行格式转换回原格式,再insert入库。...