|
v7: Быстрый экспорт в книгу Excel | ☑ | ||
---|---|---|---|---|
0
linoblack
13.05.16
✎
17:31
|
Для экспорта в эксель использую нечто в таком духе
Процедура Выгрузить_в_Excel() xl=СоздатьОбъект("Excel.Application"); xl.Workbooks.Add(); //Добавляем новый документ xl.ScreenUpdating = 0; xl.EnableEvents = 0; xl.Visible = 0; row=1; //первая строка спр=СоздатьОбъект("Справочник.Контрагенты"); спр.ВыбратьЭлементы(); Пока спр.ПолучитьЭлемент() = 1 Цикл xl.Cells(row,1).Value=спр.Код; xl.Cells(row,2).Value=спр.Наименование; row=row+1;//переходим на следующую строку КонецЦикла; КонецПроцедуры сами данные отбираются быстро, а вот экспорт таким способом идет очень долго. данные отобраны в несколько таблиц и в екселевском файле должны быть в одной книге на разных листах. есть ли способ ускорить? |
|||
1
Mikeware
13.05.16
✎
17:33
|
Рисуй в мокселе, выгружай в эксель, там копируйй.
Ну, либо используй йоксель |
|||
2
Изучаю1С8
13.05.16
✎
17:38
|
Йоксель да
|
|||
3
linoblack
13.05.16
✎
17:39
|
(2) йоксель/моксель - это какая-то внешняя компонента?
|
|||
4
Изучаю1С8
13.05.16
✎
17:39
|
||||
5
Генератор
13.05.16
✎
17:39
|
mxl не помню стандартно в excel в 7.7 наверно не сохранить, а в 8 я бы вывел в табдокумент и сохранил в эксель
|
|||
6
Изучаю1С8
13.05.16
✎
17:40
|
||||
7
linoblack
13.05.16
✎
17:42
|
(5) если бы не нужно было все в одном файле, но на разных листах, я бы тоже так делал, но....
|
|||
8
linoblack
13.05.16
✎
17:42
|
(6) благодарю. ща попробую
|
|||
9
Mikeware
13.05.16
✎
17:44
|
(3) моксельт - это стандартный mxl 1с.
йоксель - дали уже ссылку. (7) Ну дык копипаст программный никто не отменял. |
|||
10
Изучаю1С8
13.05.16
✎
17:51
|
(8) Посмотри там в готовых решениях есть готовая обработка по сохранению больших таблиц.
|
|||
11
Генератор
13.05.16
✎
17:53
|
(7), (9), да я помню для выгрузки в какой-то банк так и делал, сохранял в разные xls потом копировал в один
|
|||
12
HawkEye
13.05.16
✎
18:27
|
(5) сохранить...
(0) что мешает вывести отчет в таблицу 1С и сохранить ее в формате excel? |
|||
13
linoblack
13.05.16
✎
18:28
|
ччерт, у меня все данные в объектах таблицазначений, а йоксель хочет объет таблица
|
|||
14
linoblack
13.05.16
✎
18:29
|
а рисовать мне не нужно
|
|||
15
linoblack
13.05.16
✎
18:34
|
получается, самый быстрый способ - это все же нарисовать таблицы, потом их сохранить в отдельные файлы, и потом программно файлы объединить?
|
|||
16
Fragster
гуру
13.05.16
✎
18:40
|
я через ADODB очень быстро заполнял (и читал) простые эксельки
|
|||
17
Генератор
13.05.16
✎
19:48
|
(16) особенно читать когда на сервере офиса нет
|
|||
18
NorthWind
13.05.16
✎
22:45
|
(16) а технология заполнения какая? Заранее подготовить пустой xls с нужными листами и потом insert? Мне заполнять не надо было, только читал, но вдруг понадобится.
|
|||
19
linoblack
14.05.16
✎
12:42
|
(18) отбор данных делаю прямыми запросами. т.е. имею десяток таблиц значений. их нужно быстро скинуть в один экселевский файл. через объект Excel.Application получается медленно.
|
|||
20
NorthWind
14.05.16
✎
13:09
|
(19) ну видите, люди пишут что можно через ADODB заполнять. Можно попытаться. Там нет ограничения на то, чтобы работать с одним листом, как в случае сохранения mxl в xls.
|
|||
21
vladmenleo
14.05.16
✎
13:52
|
Самое быстрое, ИМХО через Йоксель, там можно вроде сразу многолистовой эксель создавать, там методы есть вот пример кода:
Документ = СоздатьОбъект ("ТабличныйДокумент"); Документ.ЗагрузитьИзТаблицы(гТаблица); Конвертер = СоздатьОбъект ("КонвертерExcel"); Книга = Конвертер.Создать (); Книга.Листы.Добавить (ВыбНазваниеЛиста, Документ); Книга.ПараметрыКонвертера.РаспознаватьЧисловыеЗначения = 1; Книга.Записать (ВыбИмяФайла); гТаблица - это Таблица. т.е тебе надо только вывести ТЗ в таблицу и потом в цикле понадабовлять листов в книгу эксель |
|||
22
linoblack
14.05.16
✎
17:51
|
(21) т.е. все же таблицы придется рисовать?
|
|||
23
Mikeware
14.05.16
✎
18:16
|
(22) попробуй загрузить. Ты вообще справку к нему читал?
|
|||
24
linoblack
14.05.16
✎
18:27
|
(23) читал. йоксель вроде хочет работать с объектом типа таблица, а не таблицазначений.
|
|||
25
linoblack
14.05.16
✎
18:28
|
ладно, сделал универсальную функцию вывода таблицы значений в таблицу.
|
|||
26
linoblack
14.05.16
✎
18:30
|
они все равно все однотипные прямоугольные
|
|||
27
linoblack
14.05.16
✎
19:53
|
все взлетело. ускорение экспорта через йоксель - в 25.4 раза. благодарочка за подсказку.
|
|||
28
Fragster
гуру
15.05.16
✎
10:57
|
(18) да, болванки экселей с листами с шапками, заполнение через инсерт. очень быстро работает, единственное - если сложное оформление - то его придется делать через COM
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |