首页 > 解决方案 > 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):'';

标签: phpphpexcel

解决方案


推荐阅读