【问题标题】:Detecting Number Format Of Excel Cells With PHPExcel使用 PHPExcel 检测 Excel 单元格的数字格式
【发布时间】:2015-12-23 06:08:11
【问题描述】:

有谁知道如何使用 PHPExcel 检测 Excel 单元格的格式?这里的一个答案How to know the formatting of Excel Cell 是用 C# 做的,但我想用 PHPExcel 做。谢谢。

【问题讨论】:

    标签: php excel phpexcel


    【解决方案1】:
    $objPHPExcel->getActiveSheet()
        ->getStyle('A1');
    

    将返回当前活动工作表中单元格 A1 的样式对象。然后,您可以查看样式对象的属性,以确定您感兴趣的样式元素。

    如果是具体的数字格式,那么

    $objPHPExcel->getActiveSheet()
        ->getStyle('A1')
        ->getNumberFormat();
    

    将返回数字格式掩码对象,该对象有一个getFormatCode()方法将格式掩码作为字符串返回

    编辑

    如果您特别想测试一个单元格是否包含日期格式掩码,那么有一个专门为此目的编写的特殊内置函数:

    if(PHPExcel_Shared_Date::isDateTime($objWorksheet->getCellByColumnAndRow($col, $row))) {
        echo 'Cell contains a date or time';
    }
    

    【讨论】:

    • 谢谢。是的,问题是我无法事先知道手机地址。我编写了一个解析任何工作表的包装器,但我发现具有日期格式的单元格以整数形式存储在 Excel 中,因此我想检测这些单元格,以便我可以以编程方式过滤它们并在保存到 DB 之前获取它们的日期。我尝试的是$objPHPExcel->getActiveSheet()->getStyle( $objWorksheet->getCellByColumnAndRow( $col, $row ) );,但似乎缺少一些东西,
    • 天哪!这正是我想要的。我马上测试一下。非常感谢。
    • 啊,每个单元格都被视为“一般”,我不知道为什么。
    • 您是否正在加载将setReadDataOnly 设置为true 的文件?如果是这样,那么您明确告诉 PHPExcel 不要读取数字格式掩码(或任何其他样式信息)
    • 您告诉 PHPExcel 不要读取数字格式掩码这一事实肯定会产生影响,因为任何获取掩码的请求都将简单地返回默认值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 1970-01-01
    相关资源
    最近更新 更多