2017-10-15 102 views
0

以下代碼刪除頂部的三行並將xls保存到新文件中。但所有的公式都被破壞了。我需要刪除D行後面的三行和所有列,並保留C和D列中的公式值。C和D列公式來自E和F列。但是因爲E和F被刪除,它會弄亂C和D.如何解決這個問題?PHPExcel公式變得很糟糕

<?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

很明顯,如果一個公式使用正在被刪除的單元格中的數據,它將會破壞公式。

您有幾個選項。

  • 不要刪除列E和F,但隱藏....公式仍然可以工作,但它使用的值將被隱藏

  • 之前刪除列E和F,獲得公式單元格的計算值,並用該值更新公式單元格,因此它不再是公式單元格,而是包含實際值