我的问题与this one基本相同,但我无法更改Excel文件中的日期格式:
如果我将单元格格式化为日期英语(NZ),即日期类型“* 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 />
本身就这样做会很好。
答案 0 :(得分:1)
我使用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日期返回。如果做到这一点会很好。