Показать сообщение отдельно
Старый 08.10.2021, 08:15   #1  
oleggy is offline
oleggy
Участник
 
256 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
как обойти ограничение в Com Excel при вставке строк свыше 65K
Всем привет.
Среда DAX2009.
При экспорте данных из формы в Com Excel генерируется ошибка:
Цитата:
\Classes\ComExcelDocument_RU\insertRows
Глянул, в методе идет вызов:
Цитата:
\Classes\ComExcelDocument_RU\findRange
X++:
public COM findRange(MSOfficeBookMark_RU bookMark, anytype  _workSheet = 1)
в котором bookMark = 9:81432.
Если отчет генерирует меньше 65K строк, все в порядке.
Погуглил, да есть такое ограничение.
Подскажите как можно в ComExcelDocument_RU убрать это ограничение?
Т.е. создать документ где это ограничение снято? Что то модифицировать/дописать?

Вариант перевести отчет на Net пока не рассматриваю.
Я так понял сам по себе класс ComExcelDocument_RU очень архаичен и открывает документы Excel в очень старом режиме.

Т.к. если отчет формируется успешно (когда в отчете меньше 65K строк), то в открывшемся Excel документе (если прокурутить документ до самого конца) видно что строки заканчиваются на числе 65556 (хотя на терминале Excel 2013).
Если же просто вручную создать в Excel 2013 документ, видно что в нем последняя строка 1M.

Последний раз редактировалось oleggy; 08.10.2021 в 08:17.