Имя: Пароль:
1C
 
Чтение эксель всегда тормозит, или я не умею?
0 OldCondom
 
21.09.18
17:07
Делаю на клиенте:

Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(Объект.ПутьКФайлу);
Excel.Sheets(1).Select();
КоличествоСтрок   = Excel.Cells.CurrentRegion.Rows.Count;
КоличествоКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);


Обхожу в цикле строки и колонки. Колонок 37, строк порядка 6к.
Уже минут 20 крутит, периодически смотрю отладчиком. Ничего не зависло, просто долго перебирает.


У меня задача стоит в папке переварить штук 20 таких файлов, склеить, свернуть и прочие перделки. Но сейчас терзают сомнения, что 1С на это способна.

Может я что не так делаю?
1 OldCondom
 
21.09.18
17:11
база на ssd, amd a12-9720p, 8 гиг оперативки.
На нем же postgre и сервер 1с.
Цп загружен на 40%, оперативки свободно 3гб
2 Fram
 
21.09.18
17:11
сущесвует 100500 более быстрых способов.
читать сразу область через Array
загрузить в табдокумент
через ADO
...
3 Cool_Profi
 
21.09.18
17:12
ADODOB рулитЪ
4 OldCondom
 
21.09.18
17:12
>>загрузить в табдокумент
КАК? Он же перебором строк и загружает
5 Tatitutu
 
21.09.18
17:13
вот на это замени

Диапозон = Ехсел.Sheets(Лист).Cells;
КоличествоСтрок = Диапозон.SpecialCells(11).Row;
КоличествоКолонок  = МАКС(Диапозон.SpecialCells(11).Column,13);
6 OldCondom
 
21.09.18
17:13
пошел про ado читать
7 Вафель
 
21.09.18
17:13
может долго выполняются действия с прочитанными данными
8 OldCondom
 
21.09.18
17:15
(5) Type    Required    XlCellType    The cells to include.

Типа пятница и т.д.?
9 Tatitutu
 
21.09.18
17:21
(8) полностью рабочий вариант "умело кушаешь" 250 000 строк и очень быстро
где у тебя это выдает ?
10 shuhard
 
21.09.18
17:22
(0)[Может я что не так делаю?]
угу
Excel.Application полный отстой
11 igork1966
 
21.09.18
17:23
(6) Если у тебя xlsx то может их открыть табличным документом проще?
COM он тормозной по определению.
12 igork1966
 
21.09.18
17:27
(11) + если тебе из xlsx нужны только данные ячеек, То вообще можно разобрать как xml
13 palsergeich
 
21.09.18
17:32
Я читал огромных размеров Excel файл через ADO. 40 секунд весь файл в память прочитался. Интерактивно и через COM он тупо не открывался. В Вашем случае Excel.Application это не тот инструмент который нужен
14 OldCondom
 
21.09.18
17:34
Ой. АДО за 30 секунд перебрало
15 OldCondom
 
21.09.18
17:34
Всем спасибо. Я просто дальше одноЭС ничего не знаю
16 arsik
 
гуру
21.09.18
17:46
(15) Все правильно. Ты же OldCondom
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.