hutool导出导入excel很方便,但没有依赖poi,需要手动添加poi依赖。
<properties><poi.version>4.1.2</poi.version><hutool.version>5.5.9</hutool.version></properties><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>${hutool.version}</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>${poi.version}</version></dependency>
hutool更详细的定义样式中提到可以设置日期格式
在Excel中,由于样式对象个数有限制,因此Hutool根据样式种类分为4个样式对象,使相同类型的单元格可以共享样式对象。样式按照类别存在于StyleSet中,其中包括:
头部样式 headCellStyle
普通单元格样式 cellStyle
数字单元格样式 cellStyleForNumber
日期单元格样式 cellStyleForDate
其中cellStyleForNumber cellStyleForDate用于控制数字和日期的显示方式。
因此
import cn.hutool.poi.excel.ExcelUtil;import cn.hutool.poi.excel.ExcelWriter;import org.apache.poi.ss.usermodel.DataFormat;import cn.hutool.poi.excel.StyleSet;ExcelWriter writer = ExcelUtil.getWriter(); DataFormat dataFormat = writer.getWorkbook().createDataFormat();//这里的日期格式化规则与SimpleDateFormat不一样,//部分格式可参考org.apache.poi.ss.usermodel.BuiltinFormatsshort format = dataFormat.getFormat("yyyy-mm-dd hh:mm:ss");StyleSet styleSet = writer.getStyleSet();styleSet.getCellStyleForDate().setDataFormat(format);
poi内置了许多日期格式,可参考org.apache.poi.ss.usermodel.BuiltinFormats
,摘录部分如下
0xe, "m/d/yy" 0xf, "d-mmm-yy" 0x10, "d-mmm" 0x11, "mmm-yy" 0x12, "h:mm AM/PM" 0x13, "h:mm:ss AM/PM" 0x14, "h:mm" 0x15, "h:mm:ss" 0x16, "m/d/yy h:mm"