|
Как ускорить запись в Ексель защищенный? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
11.02.18
✎
16:11
|
327 Excel.Application.Run(Имяфайла + "!AddRowF"); 32 41,122671 28,42
339 Лист3.Range("B" + НомерСтр).Value = Стр.ПациентНаименование; 307 11,080234 7,66 343 Лист3.Range("F" + НомерСтр).Value = Стр.ФИОРодственника; 306 10,038958 6,94 340 Лист3.Range("C" + НомерСтр).Value = Стр.ДатаРождения; 307 9,855679 6,81 341 Лист3.Range("D" + НомерСтр).Value = Стр.СерияПаспорта + " " + Стр.НомерПаспорта; 307 9,677820 6,69 366 Лист3.Range("R" + НомерСтр).Value = Стр.Организация2009Наименование; 306 9,616122 6,65 363 Лист3.Range("K" + НомерСтр).Value = Стр.Кратность; 306 9,569813 6,61 342 Лист3.Range("E" + НомерСтр).Value = Строка(Стр.КатегорияВнереализация); 306 9,500092 6,57 т.е. сначала встроенным макросом добавляется нужное количество строк (10 строк в секунду - а надо 10 000) потом в каждую строку пишутся значения - 30 шт в сек * 7 - т.е. примерно 4 строки в секунду есть варианты ускорить? |
|||
1
RomaH
naïve
11.02.18
✎
16:11
|
Excel = Новый COMОбъект("Excel.Application");
|
|||
2
RomaH
naïve
11.02.18
✎
16:12
|
еще раз - книга защищена, добавление строк можно делать только макросом
|
|||
3
vde69
11.02.18
✎
16:20
|
COM - это и есть макрос
ну а еще - 10к строк в еселе - пошли заказчика нафиг... и сделай ему нормальный отчет на компоновке.. |
|||
4
Изучаю1С8
11.02.18
✎
16:27
|
(3) +++
Никто не смотрит отчеты в 10к строк. |
|||
5
shadow_sw
12.02.18
✎
04:34
|
вывести в табдок, сохранить в эксель, копировать массив в нужный документ
|
|||
6
АНДР
12.02.18
✎
05:16
|
отключить отображение и авторасчет на момент вывода, пересчитать книгу после.
использовать шаблон со сгенеренным пулом ячеек |
|||
7
RomaH
naïve
12.02.18
✎
07:16
|
(7)
Excel.Visible Ложь Булево https://www.dropbox.com/s/tk3dvujo3sizkjs/2018-02-12_07h12_28.png?dl=0 авторасчет вроде отключил (но файлик-то защищенный) разницы не заметил а вот с пулом ячеек - мысль - хоть немного, но сократит время генерации |
|||
8
Лефмихалыч
12.02.18
✎
07:26
|
(0) думаю, если ты сделаешь самостоятельно файл экселя, у которого колонки будут в точности на том же месте, то ни кто не заметит разницы.
Еще можно попытаться договориться о каком-то другом формате взаимодействия. С того конца могут даже обрадоваться такому предложению |
|||
9
Йохохо
12.02.18
✎
07:35
|
(7) тут про вставку пачек
https://support.microsoft.com/en-us/help/247412/methods-for-transferring-data-to-excel-from-visual-basic |
|||
10
Защитник009
12.02.18
✎
20:08
|
Можно ещё и так сделать 3dnews.ru/582339
|
|||
11
RomaH
naïve
12.02.18
✎
20:56
|
прикол еще в чем
на win xp эта штука отрабатывает за 2.5 часа а на win 7 и более - мы так и не дождались завершения за 3 суток макрос работает через буфер ексель - тот который xls |
|||
12
RomaH
naïve
12.02.18
✎
20:56
|
(10)
После инсталляции набора макросов PLEX (431 кб; 500 руб.; демо-версия на 500 запусков) |
|||
13
Йохохо
12.02.18
✎
22:32
|
(11) то, что он защищен мешяет делать oSheet.Range("A2").Resize(100, 3).Value = DataArray ?
|
|||
14
Йохохо
12.02.18
✎
22:33
|
||||
15
cons74
13.02.18
✎
06:48
|
(11) 2.5 часа... налицо ошибка архитектуры, которая скорее всего следствие кривой постановки задачи
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |