php - PHPExcel生成excel文件后,原引用出现REF错误
问题描述
这个 PHPExcel 类很棒。现在,我想保存更改单元格值的Excel文件并将其另存为新文件,但是保存工作表的单元格设置值后,我发现对我以前的excel文件的所有引用都是REF错误,是不是有什么办法可以解决这个问题?
<?php
ini_set("error_reporting","E_ALL & ~E_NOTICE");
include "../PHPExcel/Classes/PHPExcel.php";
$filename = "template.xls";
if (!file_exists($filename)) {
echo "-1";return;
}
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($filename)){
$PHPReader = new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($filename)){
echo '无法识别的Excel文件!';
return false;
}
}
//$PHPReader->setReadDataOnly(true); #
$objPHPExcelReader = $PHPReader->load($filename);
$sheet = $objPHPExcelReader->getSheet(0); //
$array = [1,2,3,4,5,6,7,8,9,10,11];
$start = "A7";
$highestRow = 56;
for ($i=0; $i <count($array) ; $i++) {
$lastChar=to26Char($i);
$letter[]=$lastChar;
}
$cell = [];
$cell[] = $sheet->getCell("A7")->getValue();
//$sheet->setCellValue("B8",1);
$sheet->setCellValueExplicit("B8",1);
var_dump($cell);
//$objPHPExcelReader->save($filename);//
$PHPWriter = new PHPExcel_Writer_Excel2007($objPHPExcelReader);
$PHPWriter->setPreCalculateFormulas(false);
$PHPWriter->setOffice2003Compatibility(true);
$PHPWriter->save($filename);
function to26Char($x)
{
$worda=array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
if ($x == 0)
return 'A';
$a =intval( $x / 26);
$b = $x % 26;
$word=$worda[$b];
$pre=$a>0?to26Char($a-1):'';
解决方案
推荐阅读
- c++ - C++:如何在不出现 SIGSEV 错误的情况下访问结构
- azure - Microsoft.DataTransfer.Common.Shared.HybridDeliveryException TypeName 不能为空
- javascript - 如何在点击链接时显示计时器?
- ruby-on-rails - 集合的 Rails 部分不呈现
- django - 从网络流式传输音频时无法从 Google 文本到语音 api 获取结果
- multidimensional-array - 如何正确遍历二维数组并对元素的所有长度求和?
- vba - 访问 VBA:关闭表单而不保存
- python - Python - 队列权衡处理
- jmeter - JMeter - 使用来自另一个 .jmx 的测试片段
- excel - 如何在列中查找字符串值并返回该行所有单元格中的值?