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):'';

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)