PHPExcel:如何从单元格中读取内容来自其他表格中的单元格的值
问题描述:
我花了最后几天试图解决此问题。我有一个电子表格与几个选项卡(工作表)。最后一个选项卡具有所有其他选项卡中的值输入。这些值可以用公式像自动填充:PHPExcel:如何从单元格中读取内容来自其他表格中的单元格的值
=$'otherSheetName'.A1
如果我离开calculateFormulas = true
这些值显示为空。 如果我设置calculateFormulas = false
,则将这些值作为文字公式读取。
我第一次使用LaravelExcel,但因为找到解决方案而放弃了,所以我搬到了PHPExcel。尽管Laravel Excel的解决方案也会受到赞赏。
感谢
更新: 在PHPExcel我如何读值:
$inputFileType = PHPExcel_IOFactory::identify($file->getRealPath());
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setLoadSheetsOnly("MySheet");
$objPHPExcel = $objReader->load($file->getRealPath());
$rows = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
然后,我遍历数组$行和提取我想要的值。
答
你需要加载在这些公式中使用,虽然你不一定需要加载每个工作表中的所有依赖表,但可以通过表名称列表加载作为一个数组
$objReader->setLoadSheetsOnly(["MySheet", "OtherSheet1", "OtherSheet2"]);
你并不需要遍历任何其他工作表,但可以设置为你想要
$objReader->setActiveSheetIndexByName("MySheet");
,然后到活动工作表($objPHPExcel->getActiveSheet()->...
)任何电话访问细胞将是一个参考表为准活动工作表该工作表。
你是如何读取PHPExcel中的值的?你使用getCalculatedValue()吗? –
而Excel公式应该像'='otherSheetName'!A1',其中sheetname使用单引号,'!'将工作表名称与单元格地址分开 –
@MarkBaker我更新了我的文章。在那里检查我是如何读取数值的。关于这个公式,它看起来和我放在那里一样 - 并且它工作正常。顺便说一句,我没有创造它。 – Leandro