![]() |
|
Выгрузка в Exel | ☑ | ||
---|---|---|---|---|
0
Alexperumov
28.12.11
✎
15:23
|
Excel = Новый COMОбъект("Excel.Application");
ЛистЭксель= Excel.Workbooks.Open("C:\Documents and Settings\Ктото\Рабочий стол\2011.xls"); j=4; //номер колонки ЗП в екселе ; j-2 - Колонка Фио ; j-1 - дата рождения. Для Каждого Строка из ТаблицаЙокселя цикл //ТЗ из которой кидаем данные i=25; //номер строки в екселе с которого начинается таблица Пока i <= 245 цикл // 245 последняя строка i=i+1; Если Строка.Колонка2 = ЛистЭксель.Application.Cells(i,(j-2)).Value Тогда //Если Формат(Дата(строка.Колонка3), "ДФ=""дд.ММ.гг""") = Формат(Дата(ЛистЭксель.Application.Cells(i,(j-1)).Value),"ДФ=""дд.ММ.гг""") Тогда ЛистЭксель.Application.Cells(i,j).Value = СтрЗаменить(Строка.Колонка4, ".", ","); //КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; ЛистЭксель.Application.save(); Excel.quit(); Из Таблицы пытаюсь записать в ексель зп, если ФИО совпадают - ексель от этого виснет.. через диспетчер только снимается Подскажите как получше это сделать? и явно тут корявость) а 1с 8.2 |
|||
1
Шапокляк
28.12.11
✎
15:30
|
ЛистЭксель.Application.DisplayAlerts=False;
ЛистЭксель.Application.ActiveWorkBook.Close(True); как-то так |
|||
2
Web00001
28.12.11
✎
15:34
|
(0) он виснет всегда или только иногда?
эксель закрываешь как в (1) или Excel.Quit()? если виснет только иногда, я бы заинтересовался что в j |
|||
3
Шапокляк
28.12.11
✎
15:57
|
А то еще виснет, если файл при этом открыт каким-то пользователем.
|
|||
4
Alexperumov
28.12.11
✎
16:02
|
(1) спасибо добавлю
Всегда виснет, не может пройти цикл, кстати да, до этого места ексель еще раз используется стоит Excel.Quit() и после него в диспетчере ексель остается висеть.. Файловая база кстати. |
|||
5
Alexperumov
28.12.11
✎
16:05
|
(3) я поглядел - кроме меня этот файл открыть некому
|
|||
6
Alexperumov
28.12.11
✎
16:42
|
Походу комп слабый если поставить 30 строк то все проходит а 245 не тянет)
|
|||
7
Alexperumov
29.12.11
✎
09:33
|
Господа никто не знает как это оптимизировать? а то на серьёзном даже компе медленновасто..
|
|||
8
mikecool
29.12.11
✎
09:45
|
Для Каждого Строка из ТаблицаЙокселя цикл //ТЗ из которой кидаем данные
i=25; //номер строки в екселе с которого начинается таблица Пока i <= 245 цикл // 245 последняя строка WTF?? |
|||
9
mikecool
29.12.11
✎
09:46
|
ТаблицаЙокселя что здесь?
|
|||
10
Alexperumov
29.12.11
✎
09:52
|
Таблица Значений выгруженная с Екселя в которой потом изменены цифры на нужные
|
|||
11
Alexperumov
29.12.11
✎
09:54
|
Excel = Новый COMОбъект("Excel.Application");
ЛистЭксель= Excel.Workbooks.Open(ПутьКФайлу); ЛистЭксель.Application.DisplayAlerts=False; j=4; //номер колонки в екселе i=25; //номер строки в екселе с которого начинается таблица Пока i <= ВсегоСтрокВЭкселе цикл // 245 последняя строка i=i+1; Для Каждого Строка из ТаблицаЙокселя цикл Если Строка.Колонка2 = ЛистЭксель.Application.Cells(i,2).Value Тогда //Если Формат(Дата(строка.Колонка3), "ДФ=""дд.ММ.гг""") = Формат(Дата(ЛистЭксель.Application.Cells(i,(j-1)).Value),"ДФ=""дд.ММ.гг""") Тогда ЛистЭксель.Application.Cells(i,4).Value = Строка.Колонка4; Если Строка.Колонка4<>0 Тогда Сообщить( ЛистЭксель.Application.Cells(i,2).Value + " " + Строка.Колонка4); КонецЕсли; //КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; //ЛистЭксель.Application.ActiveWorkBook.Close(True); ЛистЭксель.save(); Excel.quit(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |