PHPExcel – 清除公式不受PHPExcel支持

我有一个保存在服务器上的Excel模板。 当我使用PHPExcel库将一些数据写入现有模板并保存时,它会写入数据,但是在保存的同时从excel文件中删除所有的公式(如linest等)。 所以,当我打开Excel文件,它显示写入到它的数据,但该文件不包含任何公式。 这是我做错了什么或PHPExcel不支持这些function? 我试着在其他问题上看到的stackoverflow,但找不到任何类似于我的。 以下是我写入excel文件的代码。

<?php /** Include PHPExcel */ require_once 'PHPExcel.php'; require_once 'PHPExcel/IOFactory.php'; $sheetname = "Input"; $inputFileName = "templates/test_template2.xlsx"; $inputFileType = "Excel2007"; class MyReadFilter implements PHPExcel_Reader_IReadFilter { public function readCell($column, $row, $worksheetName = '') { // Read rows 1 to 200 and columns A to PP only for avoiding memory limit errors if ($row >= 1 && $row <= 200) { if (in_array($column,range('A','PP'))) { return true; } } return false; } } $filterSubset = new MyReadFilter(); $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objReader->setIncludeCharts(true); $objReader->setLoadSheetsOnly($sheetname); $objReader->setReadFilter($filterSubset); $objPHPExcel = $objReader->load($inputFileName); $objPHPExcel->setActiveSheetIndex(0); //random data for testing $objPHPExcel->getActiveSheet()->SetCellValue('B15', '234'); $objPHPExcel->getActiveSheet()->SetCellValue('C15', '2554'); $objPHPExcel->getActiveSheet()->SetCellValue('D15', '436'); $objPHPExcel->getActiveSheet()->SetCellValue('B16', '246546'); $objPHPExcel->getActiveSheet()->SetCellValue('C16', '576'); $objPHPExcel->getActiveSheet()->SetCellValue('D16', '457'); $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); $objWriter->setPreCalculateFormulas(true); $objWriter->setIncludeCharts(true); $objWriter->save('test_template_edit.xlsx'); echo "Data written and saved to the excel file"; ?> 

编辑:所以更改内存和时间限制,并上传一个较less的列的文件后,我能够保持格式和公式。 但是,稍后查看工作簿时,即使在上传和输出文件之前使用setIncludeCharts(TRUE),相邻工作表上的所有图表也正在消失。 有什么build议么?