我正在尝试使用phpspreadsheet上传电子表格。
我只想将在开放办公室中打开电子表格时看到的每个单元格的值复制到数据库中
问题出在其中一列中,该值是计算得出的,尽管阅读了phpspreadsheet文档,但我仍然找不到执行该操作的方法。
如果我使用Open Office打开电子表格,则可以看到该值只是像9.12这样的浮点数,但是在要输入公式的输入栏中,该值为:
=VLOOKUP(A2,'file:///Folder for Tenders & Information required/October19/All Group Pricing Oct 2019 working.xlsx'#$'PI''s'.$A$1:$Y$1048576,25,0)
如果我运行以下代码:
$reader = IOFactory::createReader('Xlsx');
$spreadsheet = $reader->load($inputFileName2);
$worksheet = $spreadsheet->getActiveSheet();
$value = $spreadsheet->getActiveSheet()->getCell('F2')->getCalculatedValue();
echo $value;
产生错误:
Fatal error: Uncaught PhpOffice\PhpSpreadsheet\Calculation\Exception: PI!F2 -> Formula Error:
如果我将getCalculatedValue()更改为getValue()
我得到:
=VLOOKUP(A2,'[1]PI''s'!$A:$Y,25,FALSE)
究竟如何获得在Open Office中打开电子表格时看到的价值?
谢谢:-)
答案 0 :(得分:1)
您正在寻找:
$spreadsheet->getActiveSheet()->getCell('F2')->getOldCalculatedValue()
但是请注意,不能保证此值正确,甚至根本不存在。这完全取决于文件的写入方式。