在 ODS 单元格中输入12:00并获取默认时间格式,setReadDataOnly(true)
则getValue()
值为25569.5,如果将单元格格式为数字getValue()
,则值为0.5。如何在 ODS 中看到12:00getValue()
和= 0.5?
问问题
1125 次
1 回答
0
如果您使用过setReadDataOnly(true)
... ,则无法使用 PHPExcel 在 ODS(或 xlsx 或 xls 等)中查看日期/时间。
关键setReadDataOnly(true)
在于它只读取单元格的原始内容,没有任何格式信息,例如将单元格标识为包含日期/时间值的信息。
Excel 将日期/时间值存储为序列化时间戳,即自基准开始日期(1900 年 1 月 1 日或 1904 年 1 月 1 日,取决于日历设置)以来的天数,作为浮点值。将其标识为日期/时间值的是数字格式掩码,它指定应如何显示该浮点数。
PHPExcel 复制了这种行为,如果您使用 加载电子表格setReadDataOnly(false)
,getValue()
则将返回序列化时间戳,同时getFormattedValue()
将应用数字格式掩码并返回格式化的日期/时间字符串。相反,如果您使用 加载文件setReadDataOnly(true)
,则代码无法将此浮点数识别为日期/时间值,或者知道它应该如何格式化而不是浮点数,因为您选择不加载格式化信息也将允许进行此识别。
TL/DRsetReadDataOnly(true)
如果您希望 PHPExcel 能够将日期/时间值识别为日期/时间,请不要使用
于 2017-04-01T20:56:15.690 回答