ColdFusion:cfspreadsheet本地化日期格式

时间:2013-10-25 11:28:02

标签: excel date coldfusion coldfusion-9

我的问题与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 />本身就这样做会很好。

1 个答案:

答案 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日期返回。如果做到这一点会很好。