1с77 Быстрое сохранение в XLSX (Excel 2007) через ADO

Как мы знаем, семерка может стандартно сохранять только в XLS 97. Огромные таблицы оооочень долго сохраняются. А больше 32 тыс строк, этот формат вообще не поддерживает. Да и не дождешься…. Можно использовать йоксель, но он тоже не очень быстро сохраняет, плюс в XLS 2003 формат, который опять же имеет ограничения в количестве строк на листе, которые обходятся созданием нового листа. И во всех этих вариантах имеется проблема с датой из-за двух цифр в годе. Пришло время все это переделать…

Пришел я к тому, что
1) Открываем Excel и заполняем лист с параметрами отчета (для информации) на втором листе, а на первом листе мы создаем колонки из таблицы значения, а также заполняем первую строку (после шапки) где указываем значение число или дату, чтобы колонка «имела тип» и корректно в дальнейшем отображалась пользователю. Также наводим марафет в внешнем виде (авто ширина колонок, жирным шапку). Закрываем эксельку.
2) Подключаемся по ADO (это как запись в таблицу базы данных)
3) Заполняем ТЗ которую нужно вывести в эту эксельку.
4) чтобы память 1ской не засиралась, в цикл заполнения вставляем процедуру записи ADO и опустошения накопленной ТЗ. Так сказать пакетная запись.
5) после выходая из цикла дозаписываем остатки ТЗ в эксель ADO.
6) отключаемся от эксельки в режиме ADO
7) удаляем форматную строку созданную в первом пункте.

По окончанию у нас получается ГОТОВАЯ экселька 2007 формата, где уже все отформатировано для пользователя и даты выведены как даты!

ФАЙЛЫ ДЛЯ СКАЧИВАНИЯ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *