Библиотека программиста

29.03.2024 - Быстрое сохранение и выгрузка больших таблиц в Excel

Все очень просто. Если у таблицы высота строки - 12 пикселей, печатная форма выгружается мгновенно. Поэтому перед Таб.Показать() вставляем 2 строчки...

Все очень просто. Если у таблицы высота строки - 12 пикселей, печатная форма выгружается мгновенно. Поэтому перед Таб.Показать() вставляем 2 строчки:



Код
Область=Таб.Область(1,1,Таб.ВысотаТаблицы(),Таб.ШиринаТаблицы());
Область.ВысотаСтроки(12);

Как вариант - можно открывать отчет сразу в Экселе, используя следующую глобальную процедуру (естественно, показ в 1С можно закомментировать)
Код
// ===============================
Процедура глОткрытьВЭкселе(Таб,ИмяФайла="") Экспорт
Попытка
// запускаем Excel-Server
Excel = СоздатьОбъект("Excel.Application");
Исключение
Excel = 0;
Предупреждение("MS Excel не загружен!");
Возврат;
КонецПопытки;
Если ТипЗначенияСтр(Таб)="Строка" Тогда
Excel.WorkBooks.Open(Таб);
Иначе
Область=Таб.Область(1,1,Таб.ВысотаТаблицы(),Таб.ШиринаТаблицы());
Область.ВысотаСтроки(12);
Если Найти(ИмяФайла,":")=0 Тогда
ИмяФайла=КаталогПользователя()+ИмяФайла;
КонецЕсли;
Если Найти(Врег(ИмяФайла),"XLS")=0 Тогда
ИмяФайла=ИмяФайла+".xls";
КонецЕсли;
Таб.Записать(?(ПустоеЗначение(ИмяФайла)=0,ИмяФайла,КаталогПользователя()+
"Таблица.xls"),"XLS");
Excel.WorkBooks.Open(ИмяФайла);
КонецЕсли;
Excel.Visible=1;
Excel=0;
КонецПроцедуры //глОткрытьВЭкселе


И не надо никаких премудрых компонент )

Источник
Опубликовано на сайте: http://www.coders-library.ru
Прямая ссылка: http://www.coders-library.ru/index.php?name=news&op=view&id=303