【问题标题】:PHPExcel how to read cell value without interpretation?PHPExcel如何在不解释的情况下读取单元格值?
【发布时间】:2016-09-24 23:34:11
【问题描述】:

我只是从 Excel2007 文件中读取,而不是写入。

我正在循环遍历 RowIterator,然后是 CellIterator,将 $cell->getValue() 回显到 HTML 表中。对于某些单元格,单元格值不正确,并且当我想要实际值(作为字符串)时显示为数字(特别是浮点数)。

如何在不转换为数字且不解释的情况下强制所有单元格值成为原始值?

【问题讨论】:

    标签: php phpexcel


    【解决方案1】:

    您正在使用getValue() 从单元格中检索原始数据......这并不意味着它不正确,只是未格式化。您实际上得到的是原始值,而您似乎想要的是解释值。举个例子,在 MS Excel 中,日期/时间值被保存为一个数值(就像一个 unix 时间戳,除了基于与 unix 不同的基本日期,并且作为天数而不是秒数),它的应用该单元格的数字格式掩码,负责将其显示为日期。

    如果您想在应用格式的情况下检索此值,则有 getFormattedValue() 方法.....假设您尚未使用 readDataOnly.... 加载文件,这将应用 MS Excel数字格式掩码到单元格值并返回它在 MS Excel 中显示。

    如果您不想格式化,但您的单元格包含公式,那么getValue() 将返回公式,而不是计算值....如果您想要计算值而不是公式,那么您使用getCalculatedValue() 方法。

    所有这些都在PHPExcel documentation中描述

    【讨论】:

    • 我也试过开启关闭setReadDataOnly,没有效果。
    • 单元格格式为“时间”,包含“:30”、“:60”或“2:30”。这一定是问题所在。
    • 不,你是对的,我错了;我没有尝试使用 getFormattedValue() 将 readDataOnly 设置为 false 和。这按预期工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多