如何使用电子表格格式列将列格式设置为日期?
我正在使用 cfspreadsheet 生成 Excel 数据表。有几列是日期,显示如下:
1988-09-19 00:00:00.0
我想将它们格式化为以 m/d/yyyy 格式显示。我尝试使用电子表格格式列:
<cfset spreadsheetFormatColumn(s, {dataformat="m/d/yyyy"}, 8) />
但它没有改变任何东西。如何使用 Coldfusion 格式化列?
I'm using cfspreadsheet to generate an excel sheet of data. There are a couple of columns that are dates, and are displaying like this:
1988-09-19 00:00:00.0
I'd like to format them to display in m/d/yyyy format. I tried using spreadsheetFormatColumn:
<cfset spreadsheetFormatColumn(s, {dataformat="m/d/yyyy"}, 8) />
But it doesn't change anything. How can I format the column using coldfusion?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这可能不是一个错误。使用电子表格函数放入单元格的值必须是浮点型,而不是任何类型的日期字符串,例如“12/25/2012”。
浮点数应表示自纪元以来的天数,我的研究发现 Excel 将
1
视为1/1/1900 00:00:00
1/1/1900 00:00:00.然而,还有其他奇怪的结果 也有人说,有时这个时代会比那个时代晚一两天。我发现在 Oracle 中表示这一点的方法是:(
请注意有两个地方,用
inv_date
表示,可以放入你自己的日期列的名称)It may not be a bug. The value you put into a cell, using the spreadsheet functions, needs to be a
float
and not any kind of date string like "12/25/2012".The float should represent the number of days since the epoch, which my research found that Excel treats
1
as1/1/1900 00:00:00
. However, there were other odd results out there as well that said that sometimes the epoch was a day or two off of that.The method I found to represent this in Oracle is:
(Note that there are two places, represented by
inv_date
, to put in the name of your own date column)正如 Leigh 在评论中提到的,这似乎是一个冷融合错误。我通过在 sql 服务器端将日期转换为 varchar 来解决这个问题(使用
convert(varchar, myDateField, 101)
)。As Leigh mentioned in a comment, this seems to be a coldfusion bug. I got around this by converting the dates to varchars on the sql server side (using
convert(varchar, myDateField, 101)
).