我尝试在页面上打印Excel文件数据.要做到这一点,我使用PHPExcel lib,一切正常,除了打印公式,我有这样的公式的简单例子=SUM(C2:C5)
我以这种方式打印值:
$val = $cell->getValue();
echo '<td>' . $val . '</td>';
Run Code Online (Sandbox Code Playgroud)
我如何检查$ val是否为公式?
PHPExcel_Cell_DataType::dataTypeForValue($val); 告诉我,这是我的另一个字符串 $val
Ofc我可以在一个循环中计算它,并且如果它是最后一行则chek - 用手插入所需的信息,但我怎么能以简单的方式计算它?
很高兴听到你的建议.谢谢.
Mar*_*ker 11
PHPExcel_Cell_DataType::dataTypeForValue($val);将始终告诉您公式的字符串,因为公式是一个字符串.作为一个公式与细胞有关,而不是与数据有关.getDataType()单元对象的方法将返回'f'for公式.
如果您使用getCalculatedValue()而不是getValue(),则PHPExcel将确定该单元格是否包含公式.如果确实如此,那么它将计算结果并返回该结果,否则它将简单地返回getValue();您可能会考虑的另一种方法返回的内容,该方法getFormattedValue()将返回一个字符串,根据为该单元格设置的规则进行格式化.如果它是一个公式单元格,那么它也会完成计算.特别适用于从格式化为日期的单元格中获取日期字符串而不是数值.
您还可以使用toArray()或rangeToArray()方法来避免循环单元格,这将返回单元格值数组,但您仍需要循环数组.这两种方法都有参数,允许您设置是否应计算公式,以及是否应该应用格式.