2012-12-04 5 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); 
} 

파일 하나를 들어 당신이 파일에 대해 다음 워크 시트라는 시트를 추가하고, 두 개의 동일한 이름의 시트를 추가하려고합니다.

시트 이름이 이미 추가되었는지 확인하고, 그렇다면 "setActiveSheetIndex"를 사용하여 기존 시트로 전환 할 수 있습니다.

또 다른 옵션은 이미 존재하는 워크 시트 (2)로 이름을 변경하는 것입니다.

하지만 CSV라고 했으므로 워크 시트를 사용할 수 없다고 생각합니다. 결국 결국 하나의 워크 시트에 들어가야하므로 새로운 워크 시트를 계속 추가 할 필요가 없습니다. 하나 만들고 모든 데이터를 추가하십시오.

+0

. CSV에 워크 시트가 있다고 생각하지 않습니다. – undefined