Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Хотите ли вы стать модератором раздела сайта или форума? (Желающие пишем админу.)

Да, конечно.
Только за большие деньги.
Нет, ни за что.
Ну может в будущем...


Результаты
Другие опросы

Всего голосов: 650
Комментарии: 2


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Статьи и обзоры



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

1С-Предприятие - это программный комплекс, контролирующий все стадии товарооборота, от поступления товара на склад до его продажи и проведения через бухгалтерские книги. Первоначально этот комплекс задумывался как бухгалтерская программа и назывался 1C-Бухгалтерия. Все очень просто. Если у таблицы высота строки - 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;
КонецПроцедуры //глОткрытьВЭкселе


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

Источник



biakus
Пункты: 24Дата: 23.11.2024 Комментарий: 1
biakusЗаголовок темы звучит "Быстрое сохранение и выгрузка БОЛЬШИХ таблиц в Excel"
Могу сказать что Эксель хотя бы 20тыс. строк будет открывать очень медленно, а чтобы еще это сохранить...., т.е. я согласна что реально большие таблицы через Эксель например сохранением через меню "Файл/Сохранить копию..." могут подвесить систему, есть хитрый обход этого: сохраняем через вышеуказанное меню, но выбираем тип файла не xls, а html - сохраняется быстро, а затем ручками в готовом файле переписываем расширение на xls. Быстро и качественно.
0
Дата регистрации: 10.12.2009 Персональная информация


Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



Статьи и обзоры Программирование Быстрое сохранение и выгрузка больших таблиц в Excel Все очень просто Если таблицы высота строки пикселей печатная форма выгружается мгновенно Поэтому перед Таб Показать вставляем строчки КодОбласть=Таб Область ВысотаТаблицы ШиринаТаблицы ВысотаСтроки Как вариант можно открывать отчет сразу Экселе используя следующую глобальную процедуру естественно показ закомментировать Код//