PHPexcel CSV主文件

时间:2012-12-04 07:32:20

标签: php phpexcel

我想要多个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');

1 个答案:

答案 0 :(得分:1)

问题在于以下代码:

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

对于文件1,您添加一个名为工作表的工作表,然后对于文件二,您尝试添加一个具有相同名称的工作表。

我建议您检查是否已添加工作表名称,如果已添加,则可以使用“setActiveSheetIndex”切换到现有工作表。

另一个选项是如果找到已存在的名称,则将名称更改为工作表(2)。

但是因为你把它称为CSV我不认为你可以使用工作表。所以最后它应该只是在一个工作表中,所以不需要继续添加新的工作表。只需创建一个并将所有数据添加到该那个数据。