2017-08-05 74 views
0

當前使用模板excel表添加數據,要求也是添加新表,所以需要添加新的表單與相同的模板。PHPExcel:如何使用模板創建新的工作表?

我與新tamplate開始:

$filePath = public_path('Template.xls'); 
$objPHPExcel = PHPExcel_IOFactory::load($filePath); 

現在,我必須建立在不克隆第一片相同tamplate同一個文件的新表,因爲需要加載新的模板沒有數據。

回答

2

你不只是想創建一個新的工作表,要在表與所有現有styleing

因此,創建現有薄片的克隆複製,給它一個新的標題(因爲工作表標題必須是唯一的),並將該克隆附加到工作簿。

$newSheet = clone $objPHPExcel->getActiveSheet(); 
$newSheet->setTitle('Worksheet 2'); 
$objPHPExcel->addSheet($newSheet); 
+0

我不應該從活動工作表進行克隆,因爲它會從所有輸入的數據中進行復制。我需要一個新的模板加載。但條件是填充第一張紙後。 – 151291

+0

是的,得到了​​答案,並編輯你的答案。 – 151291

0

您修改了問題,因爲我發佈了您的原始問題的答案。

如果您需要從你已經裝載原始模板並用數據填充它的模板來創建一個新的工作,那麼你就需要重新加載模板作爲一個新的PHPExcel對象,注入從工作表到您的原始工作簿:

$filePath = public_path('Template.xls'); 
$objPHPExcel = PHPExcel_IOFactory::load($filePath); 
// fill with data 
$template = PHPExcel_IOFactory::load($filePath); 
$newSheet = clone $template->getActiveSheet(); 
$objPHPExcel->addExternalSheet($newSheet); 

addExternalSheet()方法可以確保所有的風格和結構(合併單元格)與工作表複製乾淨時加入它。不保證僅使用addSheet()方法可以正確複製該信息

+0

希望,我的標題清楚地表明,我需要新模板而不是填充數據的克隆。我只是在底部添加了解釋。我在問題中添加了新的東西。 – 151291

+0

模板通常沒有數據;一旦將數據添加到模板中,它就不再是模板 –