使用 poi-ooxml
创建工作簿后将日期单元格样式/格式设置为 mm/dd/yyyy
的包,显示为mm-dd-yyyy
当我打开它的格式。但是,当我将系统的短日期格式更改为 'yyyy/mm/dd' 时,单元格会正确显示为所需的格式 - mm/dd/yyyy
.所以我想知道如何将单元格格式设置为 mm/dd/yyyy
使用 /
作为分隔符,不被客户端机器区分?
设置单元格样式的代码
val dateCell = row.createCell(2);
// dateOccurred is LocalDate type
val date = DateUtil.getExcelDate(record.getDateOccurred());
dateCell.setCellValue(date);
val cellStyle = wb.createCellStyle();
val format = wb.createDataFormat();
cellStyle.setDataFormat(format.getFormat("mm/dd/yyyy"));
最佳答案
Excel
的默认日期分隔符由客户端系统设置确定。和 Excel
数字格式mm/dd/yyyy
表示:两位数月份,后跟默认日期分隔符,后跟两位数日,后跟默认日期分隔符,后跟四位数年份。因此,作为默认日期分隔符的斜线被系统默认日期分隔符替换是正常的。
您可以通过使用文本 /
来避免这种情况。在日期部分之间,而不是默认的日期分隔符斜线。将具有特殊含义的字符标记为 Excel
中的文本数字格式,字符可以以反斜杠为前缀 \
.
所以
cellStyle.setDataFormat(format.getFormat("mm\\/dd\\/yyyy"));
将始终使用斜杠将日期格式化为文本 /
在独立于客户端设置的日期部分之间。
关于excel - POI 创建 excel 文件,日期分隔符根据客户日期格式更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64073483/