我的问题与这个问题基本相同,但我无法更改 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 />
在本地这样做就太好了。