Модуль ImportExcel и большие файлы Excel - PullRequest
0 голосов
/ 12 февраля 2020

Я пишу сценарий PowerShell для получения книги Excel от поставщика. Все работает правильно до тех пор, пока в книге не будет ~ 270 тыс. Строк (один лист, ~ 250 столбцов). На этом этапе ImportExcel бомбит сообщение:

Исключение вызывает "Load" с аргументом (ами) "1": "Размеры массива превысили поддерживаемый диапазон". В C: \ Users \ Documents \ WindowsPowerShell \ Modules \ ImportExcel \ 7.0.1 \ Public \ Import-Excel.ps1: 111 char: 20 + else {$ ExcelPackage.Load ($ stream)} + ~~~~~ ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: OverflowException ВНИМАНИЕ: выбор столбцов с 1 по 0 может привести к странным результатам. Не удалось импортировать книгу Excel 'F: \ Data \ 2018_990.xlsx' с рабочим листом '': Не удалось создать имена свойств: Невозможно индексировать в пустой массив.
В C: \ Users \ Documents \ WindowsPowerShell \ Modules \ ImportExcel \ 7.0.1 \ Public \ Import-Excel.ps1: 196 char: 17
+ ... catch {throw "Не удалось импортировать книгу Excel '$ Path' с помощью w ...
+ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~
+ CategoryInfo: OperationStopped: (Не удалось импортировать ... пустой массив .:String) [], RuntimeException
+ FullyQualifiedErrorId: Не удалось импортировать книгу Excel 'F: \ Data \ 2018_990.xlsx' с рабочий лист '': не удалось создать имена свойств: невозможно индексировать в пустой массив.

Кто-нибудь знает, существует ли максимальный размер файла, который может обрабатывать ImportExcel? файл отлично загружается, как только я удаляю все строки, кроме ~ 270 тыс.

Код так же прост, как и выглядит:

Import-Excel -Path "fileIn" | Export-Csv -Path "fileOut"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...