다음과 같이 phpexcel에서 일부 시트를 추출하려고합니다 (참조 용으로 https://stackoverflow.com/a/10587576/813801 참조).phpexcel에서 시트 복사 중 오류가 발생했습니다.
$newObjPHPExcel = new PHPExcel();
$newObjPHPExcel->removeSheetByIndex(0); //remove first default sheet
foreach ($sheets as $sheetIndex) {
echo "trying-$sheetIndex\n";
$workSheet = $objPHPExcel->getSheet($sheetIndex);
echo "done-$sheetIndex\n";
$newObjPHPExcel->addExternalSheet($workSheet);
}
나는 마지막 줄에 $ newObjPHPExcel-> addExternalSheet ($ 워크 시트) 주석 경우 (. 시트는 시트의 범위 내에있는 인덱스의 배열은 내가 listWorksheetInfo에 체크)
getSheet 메서드가 제대로 작동합니다. 그렇지 않으면 오류가 발생합니다.
치명적 오류 : 'Canvas가 요청한 시트 인덱스 : 2가 범위를 벗어났습니다.'라는 메시지와 함께 캐치되지 않는 예외 'PHPExcel_Exception'. 실제 시트 수는 1입니다. ' /Xls/PHPExcel/PHPExcel.php:577
왜 newObjPHPExcel이 objPHPExcel을 방해해야합니까?
업데이트 : 작동하는 것으로 보이는 해결책을 찾았습니다. 왜 다른 버전이 작동하지 않았는지 확실하지 않습니다.
$newObjPHPExcel = new PHPExcel();
$newObjPHPExcel->removeSheetByIndex(0); //remove first default sheet
foreach ($sheets as $sheetIndex) {
echo "trying-$sheetIndex\n";
$workSheet[] = $objPHPExcel->getSheet($sheetIndex);
echo "done-$sheetIndex\n";
}
foreach ($workSheet as $obj)
$newObjPHPExcel->addExternalSheet($obj);
코드 예제를 제공 할 수 있습니까? 당신의 대답에서 그렇게 명확하지 않습니다. 또한, 내 솔루션 버그/문제는 무료입니까? 감사합니다 – user813801
작업 환경에는 문제가 없습니다. –