Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
POI已创建excel文件,日期分隔符已根据客户端日期格式更改_Excel_Apache Poi - Fatal编程技术网

POI已创建excel文件,日期分隔符已根据客户端日期格式更改

POI已创建excel文件,日期分隔符已根据客户端日期格式更改,excel,apache-poi,Excel,Apache Poi,在使用poi ooxml包将日期单元格样式/格式设置为mm/dd/yyyy创建工作簿后,打开它时,它将显示为mm-dd-yyyy格式。但是,当我将系统的短日期格式更改为“yyyy/mm/dd”时,单元格将正确显示为所需格式-mm/dd/yyyy。因此,我想知道如何使用/作为分隔符将单元格格式设置为mm/dd/yyyy,而不被客户机区分 设置单元格样式的代码 val dateCell=row.createCell2; //DateOccurrent是LocalDate类型 val date=Dat

在使用poi ooxml包将日期单元格样式/格式设置为mm/dd/yyyy创建工作簿后,打开它时,它将显示为mm-dd-yyyy格式。但是,当我将系统的短日期格式更改为“yyyy/mm/dd”时,单元格将正确显示为所需格式-mm/dd/yyyy。因此,我想知道如何使用/作为分隔符将单元格格式设置为mm/dd/yyyy,而不被客户机区分

设置单元格样式的代码

val dateCell=row.createCell2; //DateOccurrent是LocalDate类型 val date=DateUtil.getExcelDaterecord.getDateOccurrend; dateCell.setCellValuedate; val cellStyle=wb.createCellStyle; val format=wb.createDataFormat; cellStyle.setDataFormatformat.getFormatmm/dd/yyyy; Excel的默认日期分隔符由客户端系统设置确定。Excel数字格式mm/dd/yyyy表示:两位数的月份,后跟默认日期分隔符,后跟两位数的日期,后跟默认日期分隔符,后跟四位数的年份。因此,斜杠作为默认日期分隔符被系统的默认日期分隔符替换是正常的

可以通过在日期部分之间使用文本/而不是默认的日期分隔符斜杠来避免这种情况。要将具有特殊含义的字符标记为Excel数字格式的文本,该字符的前缀可以是反斜杠\

所以

将始终使用斜杠作为日期部分之间的文本/设置日期格式,与客户端设置无关。

Excel的默认日期分隔符由客户端系统设置确定。Excel数字格式mm/dd/yyyy表示:两位数的月份,后跟默认日期分隔符,后跟两位数的日期,后跟默认日期分隔符,后跟四位数的年份。因此,斜杠作为默认日期分隔符被系统的默认日期分隔符替换是正常的

可以通过在日期部分之间使用文本/而不是默认的日期分隔符斜杠来避免这种情况。要将具有特殊含义的字符标记为Excel数字格式的文本,该字符的前缀可以是反斜杠\

所以


将始终使用斜杠作为日期部分之间的文本/设置日期格式,与客户端的设置无关。

您使用的设置样式代码是什么?@Gagravarr我已附上设置单元格样式的代码。如果您想了解更多内容,请告诉我您正在使用什么代码设置单元格样式?@Gagravarr我已附上设置单元格样式的代码。让我知道,如果你想更多的上下文这种格式的作品很好!我离这个太近了,不知道为什么我没有尝试这个模式。谢谢!我猜Excel会将/翻译成短日期分隔符,但不知道如何验证这种想法。这种格式很好用!我离这个太近了,不知道为什么我没有尝试这个模式。谢谢!我猜Excel将/翻译为短日期分隔符,但不知道如何验证这个想法。
cellStyle.setDataFormat(format.getFormat("mm\\/dd\\/yyyy"));