0

我想拥有多个 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');
4

1 回答 1

1

问题在于以下代码:

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

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

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

另一种选择是将名称更改为 worksheet(2) 如果您找到一个已经存在的名称。

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

于 2012-12-04T07:45:13.647 回答