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」を使用して既存のシートに切り替えることができます。

もう 1 つのオプションは、既に存在する名前を見つけた場合に名前を worksheet(2) に変更することです。

しかし、あなたはそれをCSVと呼んでいるので、ワークシートを使用できるとは思いません。したがって、最終的にはすべてが 1 つのワークシートに収まるので、新しいワークシートを追加し続ける必要はありません。1 つ作成し、すべてのデータをその 1 つに追加するだけです。

于 2012-12-04T07:45:13.647 に答える