我的问题基本上与this one https://stackoverflow.com/questions/12926719/coldfusion-cfspreadsheet-reading-date-incorrectly,但我无法更改 Excel 文件中的日期格式:
如果我将单元格格式设置为日期英语(新西兰),即日期类型“*14/03/2001”,它会显示
就在电子表格中,但是当我尝试上传时,它改变了日期
和月份。但是如果我将格式更改为自定义“dd/mm/yyyy”格式
[效果很好]。
所以问题是:我可以更改 处理日期格式的方式吗?或者更好的是,直接从 Excel 导入中获取 Date 对象。
EDIT:
我通过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 />
原生地做到了这一点。
我通过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 日期。如果能在本地做到这一点就好了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)