我想要多个csv并将它们添加到主csv文件中。当我在数组中添加额外的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');
答案 0 :(得分:1)
问题在于以下代码:
foreach ($excel->getAllSheets() as $sheet) {
$bigExcel->addExternalSheet($sheet);
}
对于文件1,您添加一个名为工作表的工作表,然后对于文件二,您尝试添加一个具有相同名称的工作表。
我建议您检查是否已添加工作表名称,如果已添加,则可以使用“setActiveSheetIndex”切换到现有工作表。
另一个选项是如果找到已存在的名称,则将名称更改为工作表(2)。
但是因为你把它称为CSV我不认为你可以使用工作表。所以最后它应该只是在一个工作表中,所以不需要继续添加新的工作表。只需创建一个并将所有数据添加到该那个数据。