PHPExcel计算公式单元格和格式货币
现在我正在读取excel文件并将其显示在html表格上。PHPExcel计算公式单元格和格式货币,php,phpexcel,Php,Phpexcel,现在我正在读取excel文件并将其显示在html表格上。 像这样: <?php function load_table(){ require_once('Classes/PHPExcel.php'); $objReader = PHPExcel_IOFactory::createReader('Excel2007'); $objReader->setReadDataOnly(true); $objPHPExcel = $objReader-&g
像这样:
<?php
function load_table(){
require_once('Classes/PHPExcel.php');
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("SampleData.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow(); // e.g. 10
$highestColumn = $objWorksheet->getHighestColumn(); // e.g 'F'
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); // e.g. 5
echo '<table>' . "\n";
for ($row = 1; $row <= $highestRow; ++$row) {
echo '<tr>' . "\n";
for ($col = 0; $col <= $highestColumnIndex; ++$col) {
echo '<td>';
echo $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
echo '</td>' . "\n";
}
echo '</tr>' . "\n";
}
echo '</table>' . "\n";
}
?>
我也试过这样的方法:
echo $objWorksheet->getCellByColumnAndRow($col, $row)->getOldCalculatedValue();
这一个有效,但我不想使用GetOldCalculatedValue
,因为:
getOldCalculatedValues()读取MS Excel上次计算的值(如果可用),但不能保证该值始终存在,如果存在,则不能保证该值正确(可以在MS Excel中禁用自动计算,或者在加载CSV文件时不会设置该值);而getCalculatedValue()实际上在PHPExcel本身中重新计算该值
此外,我还使用了echo
来打印公式字符串,它看起来很好:
echo $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
Fórmula打印:=F2*E2
=F3*E3
=F4*E4
=F14*E14…
echo $objWorksheet->getCellByColumnAndRow($col, $row)->getCalculatedValue();
那么,如何获得公式的结果并将其格式化为货币?关于单元格格式: 如果使用,单元格将没有任何格式
$objReader->setReadDataOnly(true);
因为您特别告诉PHPExcel不要使用称重传感器格式。如果要读取格式,请不要将readDataOnly设置为true
至于你问题的另一部分,如果你打电话时出错
echo $objWorksheet->getCellByColumnAndRow($col, $row)->getCalculatedValue();
那么,说明公式是什么可能是有用的
echo $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
应该告诉你这个公式,所以也许你可以考虑把它添加到你的问题中,因为知道你是否需要帮助很有用。当我回显$objWorksheet->getCellByColumnRow($col,$row)->getValue();`它完美地打印了公式。但是我想找到一种打印结果的方法。已设置'ReadDataOnly(false);`但错误还在继续。请帮助“-”如果调用
getCalculatedValue()时出错,则公式可能有问题代码>,因此了解该公式的示例可能很有用:=F2*E2,=F3*E3,=F9*E9…
。当我打开excel文件时,结果很好。这些公式应该不会引起任何问题:您运行的是什么版本的PHPExcel?1.7.6非常旧,不应该再使用了:1.8.1是最新的带标签的生产版本。。。不要使用1.9分支,自述文件中的大警告应该告诉您,目前它是一个高度不稳定的分支