4

我的问题与这个问题基本相同,但我无法更改 Excel 文件中的日期格式:

如果我将单元格格式化为日期英语(新西兰),即日期类型“* 14/03/2001”,它会显示在电子表格中,但是当我尝试上传时,它会切换日期和月份。但是如果我将格式更改为自定义的“dd/mm/yyyy”格式[它工作正常]。

所以问题是这样的:我可以改变 <cfspreadsheet /> 处理日期格式的方式吗?或者更好的是,直接从 Excel 导入中获取 Date 对象。

编辑:

我通过使用 POI 找到了解决方案:

<cfset fileIS = createObject( "java", "java.io.FileInputStream" ).init( "#request.site.sImportPath#\#variables.file#" ) />
<cfset excelFS = createObject( "java", "org.apache.poi.poifs.filesystem.POIFSFileSystem" ).init( fileIS ) />
<cfset workBook = CreateObject( "java", "org.apache.poi.hssf.usermodel.HSSFWorkbook" ).init( excelFS ) />
<cfset sheet = workBook.getSheet( "mySheetName" ) />

<cfset myDateValue = sheet.getRow( 20 ).getCell( 2 ).getDateCellValue() />

使用时,getDateCellValue()您可以将实际日期作为可用的 ColdFusion 日期返回。如果<cfspreadsheet />在本地这样做就太好了。

4

1 回答 1

2

我通过使用 POI 找到了解决方案:

<cfset fileIS = createObject( "java", "java.io.FileInputStream" ).init( "#request.site.sImportPath#\#variables.file#" ) />
<cfset excelFS = createObject( "java", "org.apache.poi.poifs.filesystem.POIFSFileSystem" ).init( fileIS ) />
<cfset workBook = CreateObject( "java", "org.apache.poi.hssf.usermodel.HSSFWorkbook" ).init( excelFS ) />
<cfset sheet = workBook.getSheet( "mySheetName" ) />

<cfset myDateValue = sheet.getRow( 20 ).getCell( 2 ).getDateCellValue() />

使用 getDateCellValue() 时,您将实际日期作为可用的 ColdFusion 日期返回。如果在本地这样做就太好了。

于 2013-10-25T18:03:36.857 回答