以下代码删除顶部的三行并将xls保存到新文件。但所有公式都被销毁了。我需要在D之后删除三行和所有列,并在C和D列中保留公式值.C和D列公式来自E和F列。但是因为E和F被删除了,它会弄乱C和D.如何解决这个问题?
<?php
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
require_once('PHPExcel/Classes/PHPExcel.php');
$reader = PHPExcel_IOFactory::createReader('Excel5');
$reader->setReadDataOnly(true);
set_include_path(get_include_path() . PATH_SEPARATOR . 'Classes/');
/** PHPExcel_IOFactory */
include 'PHPExcel/IOFactory.php';
//Defining File Type
$fileType = "Excel5";
//Retrieving File
$tmpfname = "tasoituslista.xls";
$tmpfname2 = "tasoituslista2.xls";
//Loading file into PHPExcel
$objPHPExcel = PHPExcel_IOFactory::load($tmpfname);
$worksheet = $objPHPExcel->getSheet(0); //Worksheet of file defined as first
$lastRow = $worksheet->getHighestRow();
$objPHPExcel->getActiveSheet()->removeRow(1, 3);
//Write file into original file
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $fileType);
$objWriter->save($tmpfname2);
?>
答案 0 :(得分:0)
显然,如果公式使用正被删除的单元格中的数据,则会破坏公式。
你有几个选择。
不要删除E和F列,但要隐藏它们......公式仍然可以使用,但它使用的值将被隐藏
在删除E和F列之前,获取公式单元格的计算值,并使用该值更新公式单元格,因此它不再是公式单元格,而是包含实际值