当前位置: 首页 > 知识库问答 >
问题:

如何设置日期作为类型日期在Excel与apache poi?

苏鹏鹍
2023-03-14

我正在使用apache poi 3.8创建一个excel文件。这个excel文件需要包含一些日期。

我正在尝试将日期写入excel文件,格式为excel类型“date”。但我总是得到一个“自定义”类型。我需要使用“日期”类型,因此它将根据用户设置进行本地化。

我尝试了以下方法:

Apache poi日期格式

Apache POI将Date本地化到Excel单元格

但它不起作用。

这是我的代码:

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("new sheet");

XSSFDataFormat df = wb.createDataFormat();
CellStyle cs = wb.createCellStyle();
cs.setDataFormat(df.getFormat("d-mmm-yy"));

XSSFCell cell = sheet.createRow(0).createCell(0);

Calendar c = Calendar.getInstance();
c.set(2012,3-1,18);
cell.setCellValue( c.getTime() );

cell.setCellStyle(cs);

// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("c:\\temp\\dates-sworkbook.xlsx");
wb.write(fileOut);
fileOut.close();

我应该使用哪种格式?

谢谢

共有3个答案

刘狐若
2023-03-14

我理解你的问题。我决定使用ApachePOI的DateUtil。

Cell cell = yourRow.createCell(yourIndex);
cell.setCellValue(DateUtil.getExcelDate(yourDate);

享受!!

郑正文
2023-03-14

我真的不知道你是否已经解决了这个问题,但这里有一个代码可以解决它。它实际上解决了我的问题。

CreationHelper createHelper = wb.getCreationHelper();
...
cs.setDataFormat(createHelper.createDataFormat().getFormat("yourformat"));

摘自http://poi.apache.org/spreadsheet/quick-guide.html#CreateDateCells

公羊俭
2023-03-14

Date是一种特殊的内置格式。如果你想显式地使用它,那么你需要显式地选择它。(Excel中使用的几乎所有格式都是自定义格式,可以显示指定的格式,但也有一些特殊格式)

POI在BuiltinFormats中具有特殊内置格式的完整列表(它比Excel最近副本下拉列表中的格式列表小得多!)。如果您确保设置了其中一个,而不是您自己的自定义格式字符串,它的行为应该完全符合您的期望

 类似资料:
  • 是否有任何直接的方法将日期设置为变量,但作为输入?我的意思是我不知道日期在设计时,用户应该给它。我尝试了以下代码,但它不起作用:Calendar mydate=new GregorianCalendar(int year,int month,int day);

  • 如何将此日期类型“Thu Feb 02 12:00:00 GMT-12:00 2012”更改为另一个日期类型“YYYY-MM-DD HH:MM:SS”?如果“Thu Feb 02 12:00:00 GMT-12:00 201 2”为字符串类型,如何转换“YYYY-MM-DD HH:MM:SS”的日期类型? java代码: 输出为字符串类型。我想获得日期类型输出,所以我添加了以下代码。

  • 我使用html和js在提货日期列中获取今天的日期。html js公司 我想创建另一个字段DropOffDate并从用户那里获取输入。但我想启用pickupdate 2天后的日期。如何使用html和javascript实现这一点。我正在asp中使用此功能。net核心应用程序。

  • 本文向大家介绍python转化excel数字日期为标准日期操作,包括了python转化excel数字日期为标准日期操作的使用技巧和注意事项,需要的朋友参考一下 伙伴遇到一个关于excel导入数据到python中,日期变成数字而不是日期格式的问题。第一反应这个数字应该是excel里面的时间戳类似的,所以我就实验增加一天是不是对应的数字就加1。最后证明了我的想法,这样就可以倒推excel里面的数字日期

  • 问题内容: 我已经使用Apache POI一段时间来以编程方式读取现有的Excel 2003文件。现在,我有一个新的要求,即在内存中创建整个.xls文件(仍然使用Apache POI),然后将它们最后写入文件中。困扰我的唯一问题是带日期的单元格的处理。 考虑以下代码: 当我将包含此单元格的工作簿写到文件中并用Excel打开它时,该单元格将显示为数字。是的,我确实意识到Excel将其“日期”存储为自

  • 本文向大家介绍PHP 设置日期,包括了PHP 设置日期的使用技巧和注意事项,需要的朋友参考一下 示例 setDate 在DateTime对象中设置日期。 本示例将日期设置为2015年7月25日,它将产生以下结果: