08.10.2021, 08:15 | #1 |
Участник
|
как обойти ограничение в Com Excel при вставке строк свыше 65K
Всем привет.
Среда DAX2009. При экспорте данных из формы в Com Excel генерируется ошибка: Цитата:
\Classes\ComExcelDocument_RU\insertRows
Цитата:
\Classes\ComExcelDocument_RU\findRange
X++: public COM findRange(MSOfficeBookMark_RU bookMark, anytype _workSheet = 1) Если отчет генерирует меньше 65K строк, все в порядке. Погуглил, да есть такое ограничение. Подскажите как можно в ComExcelDocument_RU убрать это ограничение? Т.е. создать документ где это ограничение снято? Что то модифицировать/дописать? Вариант перевести отчет на Net пока не рассматриваю. Я так понял сам по себе класс ComExcelDocument_RU очень архаичен и открывает документы Excel в очень старом режиме. Т.к. если отчет формируется успешно (когда в отчете меньше 65K строк), то в открывшемся Excel документе (если прокурутить документ до самого конца) видно что строки заканчиваются на числе 65556 (хотя на терминале Excel 2013). Если же просто вручную создать в Excel 2013 документ, видно что в нем последняя строка 1M. Последний раз редактировалось oleggy; 08.10.2021 в 08:17. |
|
08.10.2021, 08:40 | #2 |
Участник
|
А что конкретно происходит?
ошибка при создании новой строки? или при попытке получить range на строку с номером больше 65к - возвращается всегда одна эта последняя строка с номером 65к? А если в пустой документ вставить данные в ячейку на строке 90000 - что будет? |
|
08.10.2021, 08:41 | #3 |
Участник
|
А как вы программно файл создаёте? На основании шаблона?
Такое ощущение что у вас создаётся файл старого формата (не *.xlsx, а *.xls) |
|
|
За это сообщение автора поблагодарили: Pandasama (2), oleggy (1). |
08.10.2021, 09:03 | #4 |
Участник
|
Если хочется всё переписать, то я делал вот так
Ограничение в количестве строк - более миллиона точно умеет. Я строил на базе InventTrans. И еще Эксель хранит/кеширует данные для сводных таблиц в достаточно хорошем формате, в итоге Эксель конечно не маленький но и не монстрообразный. P.S. Не все отчёты стоит делать в сводной таблице. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
08.10.2021, 12:39 | #5 |
Участник
|
Да, помогло. Файл шаблона пересохранил из *.xlt в *.xltx.
Последний раз редактировалось oleggy; 08.10.2021 в 12:50. |
|
|
|