【发布时间】:2015-11-24 14:11:58
【问题描述】:
我正在尝试修改下载的谷歌文档电子表格,然后将其保存到我的服务器。 文件的下载很好,我把它保存到我的服务器上,它打开了,一切都很好。当我将文件加载到 PHPExcel 对象中,然后修改一些单元格,然后重新保存修改后的文件时,就会出现问题。 谁能看到我哪里出错了?忽略从数据库获取股票值的行,它们在我的代码中正确编码我刚刚从粘贴的代码示例中删除了查询。
我得到错误:
致命错误:在.. /PHPExcel\Classes\PHPExcel\Cell.php:508 堆栈跟踪:#0 ....
function updateDoc($url)
{
file_put_contents("filename.xlsx",fopen($url,"r"));
$filename = "filename.xlsx";
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$excel2 = $objReader->load('filename.xlsx');
$excel2->setActiveSheetIndexByName("Current Products");
$rowIterator = $excel2->getActiveSheet()->getRowIterator();
$rows = 1;
$columnAsLetters = 'E';
foreach($rowIterator as $row)
{
if($rows <= 2)
{
continue;//skip first 2 rows
}
else
{
$data = $excel2->getActiveSheet()->getCell($columnAsLetters.$rows)->getCalculatedValue();
$sku = trim($data);
$stock = //** I select stock from database **//
$r = //** returned sql row **//
$stk = $r[0];
$excel2->getActiveSheet()->setCellValue("G" . $rows, $stk);
}
$rows++;
}
$objWriter = PHPExcel_IOFactory::createWriter($excel2, 'Excel2007');
$objWriter->setPreCalculateFormulas(FALSE);
$objWriter->save('filename2.xlsx');
}
【问题讨论】:
-
代码中引发异常的行是什么,您要保存的实际值是多少?
-
@Alon 据我所知,通过注释掉各个部分,它的最后一行 $objWriter->save('filename2.xlsx');引发错误。我只是想用从数据库中获取的新股票值覆盖 G 列中的股票值。