【发布时间】:2013-10-25 11:28:02
【问题描述】:
我的问题与this one基本相同,但我无法更改Excel文件中的日期格式:
如果我将单元格格式化为日期英语 (NZ),即日期类型“*14/03/2001”,它会显示 就在电子表格中,但是当我尝试上传它时,它切换了一天 和月。但是如果我将格式更改为自定义的“dd/mm/yyyy”格式 [它工作正常]。
所以问题是:我可以改变
编辑:
我通过使用 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 /> 原生地这样做就好了。
【问题讨论】:
-
你用
SetLocale()设置了什么? -
en_US 和 nl_NL 我都试过了,没有变化。
-
如果您收到可预测的格式,您可以使用 ParseDateTime 将其转换为日期对象。
-
是的,如果 CF 能提供更多此类功能就更好了。上面那个看起来不错。请记住,行/单元格/值可能是
null。您能否将其发布为“答案”,以便更明显? (允许回答您自己的问题:)。 -
潜伏多年后终于决定开始在这里提问和回答问题。感谢您的帮助,我已经添加了答案。
标签: excel date coldfusion coldfusion-9