Я считаю, что это ошибка при создании файла Excel .xlsx, который, к сожалению, мы не можем контролировать, поскольку он через сторонний API. Каждый раз, когда я пытаюсь открыть файл, используя …
try {
$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);
} catch(Exception $e) {
die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}
Я получаю сообщение об ошибке с именем «filename.xlst»: PHPExcel Error: Масштаб должен быть больше или равен 1. Я предполагаю, что когда они генерируют файл Excel, они устанавливают недопустимое значение для масштаба масштабирования. Я могу заставить этот же файл работать, преобразовав его в CSV, а затем обратно в XLSX, который, как я полагаю, устанавливает масштаб масштабирования документа обратно по умолчанию.
Проблема в том, что это является проблемой для конечных пользователей, и я не могу найти в документации способ переопределить настройку масштаба при загрузке в файл.
Буду признателен за любую оказанную помощь.
Как будто мы думали, что у нас есть какие-то нелегальные персонажи. Мой коллега, который работал со мной над этим, нашел преобразователь XLSX в CSV, немного переписал и добавил его в виде пакета для композитора. Если кто-то еще сталкивается с этой проблемой, репо здесь. Я постараюсь добавить несколько документов в ближайшее время.
Я получаю это исключение
Проблема была в файле xlsx, параметр zoomScaleNormal
в описании листа xml было 0, но это ошибка.
Если сохранить этот файл из Excel, ошибка исчезла.
В моем случае я редактирую файл Reader / Excel2007.php
if (isset($xmlSheet->sheetViews->sheetView['zoomScaleNormal'])) {
if (intval($xmlSheet->sheetViews->sheetView['zoomScaleNormal']) === 0)
$zoomScaleNormal = 85;
else{
$zoomScaleNormal = intval($xmlSheet->sheetViews->sheetView['zoomScaleNormal']);
}
$docSheet->getSheetView()->setZoomScaleNormal( $zoomScaleNormal );
}
Я добавил условие, если zoomScaleNormal = 0, я установил его на 85
То же самое происходит со мной сегодня. Добавить дополнительную проверку Reader/Excel5.php
онлайн 4325
:
if ($fPageLayoutView === 1) {
$this->_phpSheet->getSheetView()->setView(PHPExcel_Worksheet_SheetView::SHEETVIEW_PAGE_LAYOUT);
if ($wScalePLV == 0) $wScalePLV = 100; // <<<<< ADD THIS CHECK
$this->_phpSheet->getSheetView()->setZoomScale($wScalePLV); //set by Excel2007 only if SHEETVIEW_PAGE_LAYOUT
}