2012-12-04 71 views
0

我想有多個CSV文件並將它們添加到主CSV文件中。它在數組中添加額外的csv文件時會引發異常錯誤。PHPexcel CSV主文件

Uncaught exception 'Exception' with message 'Workbook already contains a worksheet named 'Worksheet'. Rename the external sheet first.' in
請在下面找到我的代碼

include'../Classes/PHPExcel.php'; 
include'../Classes/PHPExcel/IOFactory.php'; 

$filenames = array('Sheet1.csv','Sheet2.csv'); 

$bigExcel = new PHPExcel(); 
$bigExcel->removeSheetByIndex(0); 

$reader = new PHPExcel_Reader_CSV(); 

foreach ($filenames as $filename) { 
$excel = $reader->load($filename); 
foreach ($excel->getAllSheets() as $sheet) { 
    $bigExcel->addExternalSheet($sheet); 
} 
foreach ($excel->getNamedRanges() as $namedRange) { 
    $bigExcel->addNamedRange($namedRange); 
} 
} 
$writer = new PHPExcel_Writer_CSV($bigExcel); 
$writer->save('2007-write.csv'); 

回答

1

的問題是用下面的代碼:

foreach ($excel->getAllSheets() as $sheet) { 
    $bigExcel->addExternalSheet($sheet); 
} 

對於文件1,你添加一個名爲工作表,然後進行文件兩個你嘗試添加一個同名的工作表。

我建議你檢查一下sheetname是否已經被添加,如果是的話,你可以使用「setActiveSheetIndex」切換到現有的表格。

另一種選擇是,如果找到已存在的名稱,則將名稱更改爲工作表(2)。

但既然你把它叫做CSV我不認爲你可以使用工作表。所以最終它應該全部放在一張工作表中,所以不需要繼續添加新的工作表。只需創建一個並將所有數據添加到該數據。

+0

是的。我不認爲CSVs有工作表。 – undefined