2011-10-01 107 views
1

我使用PHPExcel庫進行許多Excel操作,並結合PHP/MySQL。 這對我有幫助。PHPExcel:按工作表分割Excel文檔工作表

但我不知道如何按工作表分割一個Excel文檔,其中每個工作表都是作爲新的Excel文檔創建的。

我還需要在同一時間刪除生成的新Excel文檔中原始文檔中的空行(清理最終文檔)。

這樣做的最佳方法是什麼?

您的所有體驗都非常感謝。

此致敬禮。

回答

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文件,因爲我想。

正如你所看到的,它是不是很難釋放,但文檔是如此混亂...

希望這可以幫助。