Ошибка PHPExcel: масштаб должен быть больше или равен 1

Я считаю, что это ошибка при создании файла 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, который, как я полагаю, устанавливает масштаб масштабирования документа обратно по умолчанию.

Проблема в том, что это является проблемой для конечных пользователей, и я не могу найти в документации способ переопределить настройку масштаба при загрузке в файл.

Буду признателен за любую оказанную помощь.

1

Решение

Как будто мы думали, что у нас есть какие-то нелегальные персонажи. Мой коллега, который работал со мной над этим, нашел преобразователь XLSX в CSV, немного переписал и добавил его в виде пакета для композитора. Если кто-то еще сталкивается с этой проблемой, репо здесь. Я постараюсь добавить несколько документов в ближайшее время.

https://github.com/StudentAffairsUWM/xlsxtocsv

0

Другие решения

Я получаю это исключение
Проблема была в файле 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

0

То же самое происходит со мной сегодня. Добавить дополнительную проверку 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
}
0
По вопросам рекламы [email protected]