Coldfusion电子表格设置数据格式(h:mm)

我正在使用Coldfusion 10,我有一个testing代码来创build一个电子表格并设置一个值为“8:30”的格式来格式化“h:mm”。 代码如下:

<cfset sObj = spreadsheetNew("true")> <CFSET SpreadsheetFormatCell(sObj,{dataFormat="h:mm", alignment="right"}, 1, 2)> <CFSET timehmm = "8:30"> <cfset spreadsheetSetCellValue(sObj,"#timehmm#", 1, 2)> <cfset SpreadSheetSetColumnWidth(sObj, 2, 11)> <cfspreadsheet action="write" name="sObj" filename="..\TEST.xlsx" overwrite="true"> <cflocation url="EXCEL/TEST.xlsx" addtoken="no"> 

问题是,在excel文件中,我点击值为8:30的列,插入functioninput框中显示的值是8:30,应该是'8:30:00 AM',因为我已经格式化了这个细胞。

如果我input同一个单元格的值为'8:30',然后再次单击单元格。 我可以看到插入function框中的值是'8:30:00 AM'正确的。

请帮忙指出我的代码有什么问题,因为我需要将此格式设置为单元格,以便稍后进行总结。 目前这个单元格好像已经被识别为文本格式,不能被求和。

谢谢。

我不认为这个代码本身就是错的。 我不认为仅凭基本的CF10function是可能的。 CF似乎正确地处理date/时间string,但不是“时间”string。 它可以在CF11中使用新的datatype参数来支持。

解决方法是使用POI DateUtil类将时间string转换为Excel可以解释的数值。 注意:时间string必须使用24小时制

 <cfset sObj = spreadsheetNew("true")> <cfset util = createObject("java", "org.apache.poi.ss.usermodel.DateUtil")> <cfset SpreadsheetFormatCell(sObj,{dataFormat="h:mm"}, 1, 2)> <cfset timeValue = util.convertTime("8:30")> <cfset spreadsheetSetCellValue(sObj, timeValue, 1, 2)> 

根据文档,h:mm AM / PM是与h:mm不同的格式。 你试过h:mm AM / PM吗?