You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用FastExcel设置Date值时,如何将单元格类型设为Date?

在FastExcel中设置Date类型单元格的正确格式

问题描述

在Java中使用FastExcel创建电子表格时,调用org.dhatim.fastexcel.Worksheet的重载方法worksheet.value(row, column, value)设置单元格值。当值为Date类型时,调用的方法为:

public void value(int r, int c, Date value)

但表格中该值显示为数值,单元格类型为Standard,手动将单元格类型改为Date后才显示正确的日期。需要配置FastExcel直接将单元格类型设置为Date。

解决方法

FastExcel直接传入Date对象只会写入日期对应的Excel底层数值(即从1900年1月1日起算的天数),必须搭配日期格式样式,才能让Excel识别并显示为日期类型:

  1. 先创建日期格式的样式
// 初始化工作簿
Workbook workbook = new Workbook(outputStream);
// 创建自定义日期格式的样式,格式可根据需求修改(比如"yyyy/MM/dd HH:mm:ss")
Style dateStyle = workbook.createStyle().format("yyyy-MM-dd");
  1. 写入Date值时指定该样式
Worksheet worksheet = workbook.newWorksheet("Sheet1");
Date targetDate = new Date();
// 第四个参数传入已定义的日期样式
worksheet.value(0, 0, targetDate, dateStyle);

通过这种方式写入的单元格会被Excel自动识别为日期类型,直接显示格式化后的日期,无需手动调整单元格类型。如果有多个日期单元格需要设置,可复用同一个Style对象,提升效率。

内容的提问来源于stack exchange,提问作者Mark Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:37:34