Я пытаюсь извлечь некоторые листы в 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);
}
(листы представляет собой массив индексов, которые в пределах листа я проверил с listWorksheetInfo.)
Если я закомментируйте последнюю строку $ newObjPHPExcel-> addExternalSheet ($ WorkSheet);
Метод getSheet работает нормально. В противном случае, я получаю сообщение об ошибке:
Неустранимая ошибка: исключить исключение «PHPExcel_Exception» с сообщением «Ваш запрошенный индекс листа: 2 выходит за пределы. Фактическое количество листов равно 1. ' in /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
Нет проблем с вашим workround –