PHPExcel:逐页拆分Excel文档

时间:2011-10-01 08:38:36

标签: phpexcel

我正在使用PHPExcel库进行许多Excel操作,并结合PHP / MySQL。 这对我很有帮助。

但我无法弄清楚如何逐张拆分Excel文档,其中每张工作表都是作为新的Excel文档创建的。

同时,我还需要删除生成的新Excel文档中原始文档中的空行(清理最终文档)。

最好的方法是什么?

非常感谢您的所有经历。

最好的问候。

1 个答案:

答案 0 :(得分:2)

我找到了我想要的方式。

这是一个解决方案(可能不是最好的方法,但它运行得很好):

$file = $_POST['file'];
$filename = pathinfo($file, PATHINFO_FILENAME);

require_once 'phpexcel/Classes/PHPExcel.php';

$xls = new PHPExcel();
$xlsReader= new PHPExcel_Reader_Excel5();
$xlsTemplate = $xlsReader->load($file);

$sheet1 = $xlsTemplate->getSheetByName('Sheet1');
$xls->addExternalSheet($sheet1,0);
$xls->removeSheetByIndex(1);
$xlsWriter = new PHPExcel_Writer_Excel5($xls);
$xlsWriter->save($filename."_Sheet1.xls");

$sheet2 = $xlsTemplate->getSheetByName('Sheet2');
$xls->addExternalSheet($sheet2,0);
$xls->removeSheetByIndex(1);
$xlsWriter = new PHPExcel_Writer_Excel5($xls);
$xlsWriter->save($filename."_Sheet2.xls");

$sheet3 = $xlsTemplate->getSheetByName('Sheet3');
$xls->addExternalSheet($sheet3,0);
$xls->removeSheetByIndex(1);
$xlsWriter = new PHPExcel_Writer_Excel5($xls);
$xlsWriter->save($filename."_Sheet3.xls");

$sheet4 = $xlsTemplate->getSheetByName('Sheet4');
$xls->addExternalSheet($sheet4,0);
$xls->removeSheetByIndex(1);
$xlsWriter = new PHPExcel_Writer_Excel5($xls);
$xlsWriter->save($filename."_Sheet4.xls");

$sheet5 = $xlsTemplate->getSheetByName('Sheet5');
$xls->addExternalSheet($sheet5,0);
$xls->removeSheetByIndex(1);
$xlsWriter = new PHPExcel_Writer_Excel5($xls);
$xlsWriter->save($filename."_Sheet5.xls");

$sheet6 = $xlsTemplate->getSheetByName('Sheet6');
$xls->addExternalSheet($sheet6,0);
$xls->removeSheetByIndex(1);
$xlsWriter = new PHPExcel_Writer_Excel5($xls);
$xlsWriter->save($filename."_Sheet6.xls");

然后,我原来的Excel文件,包含6张,现在按照我的意愿分成6个Excel文件。

正如您所看到的,发布并不是那么难,但文档太混乱......

希望这可以提供帮助。