|
Вызрузка в Эксель долго работает, как ускорить? | ☑ | ||
|---|---|---|---|---|
|
0
Shur1cIT
02.04.13
✎
14:35
|
Выгружаю данные из 1С, процессор загружается на 100% начал смотреть в чем причина, оказалось эти значения эксель использует в своих формулах итд, вопрос как при программном открытии эксель отключить вычисления в формулах? второй вопрос как значение сохранить в эксели как число? вот кусок кода выгрузки.
Процедура Выгрузить() ТабПлатежей = ПолучитьДанныеДляВыгрузки(); Попытка // Загрузка объекта Microsoft Excel Состояние("Выгрузка данных из 1С в Microsoft Excel..."); ExcelПриложение = Новый COMОбъект("Excel.Application"); Исключение Сообщить("Ошибка при запуске Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Возврат; КонецПопытки; Книга = ExcelПриложение.WorkBooks.Open(ФайлДДС); //ExcelПриложение.Visible = 1; Лист = Книга.WorkSheets(СокрЛП(ИмяЛистаДляВыгрузки));// лист для загрузки НомерСтроки = НомерСтрокиДляНачалаЗагрузки; Для Каждого Строка ИЗ ТабПлатежей Цикл Лист.Cells(НомерСтроки, 1).Value = Формат(Строка.Дата,"ДЛФ=D"); Лист.Cells(НомерСтроки, 2).Value = СокрЛП(Строка.КодГр); Лист.Cells(НомерСтроки, 3).Value = СокрЛП(Строка.КодСтатьи); Лист.Cells(НомерСтроки, 4).Value = Формат(Строка.Дебет ,"ЧЦ=15; ЧДЦ=2; ЧГ="); Лист.Cells(НомерСтроки, 5).Value = Формат(Строка.Кредит,"ЧЦ=15; ЧДЦ=2; ЧГ="); Лист.Cells(НомерСтроки, 7).Value = СокрЛП(Строка.Контрагент); Лист.Cells(НомерСтроки, 8).Value = СокрЛП(Строка.НазначениеПлатежа); Лист.Cells(НомерСтроки, 10).Value = Строка(Строка.Неделя)+"-я неделя"; Лист.Cells(НомерСтроки, 12).Value = ПолучитьКомпаниюВФорматеДДС(Строка.Компания); Лист.Cells(НомерСтроки, 13).Value = Строка.РуководительЦФО; Лист.Cells(НомерСтроки, 14).Value = Формат(Строка.ДебетВВалюте ,"ЧЦ=15; ЧДЦ=2; ЧГ="); Лист.Cells(НомерСтроки, 15).Value = Формат(Строка.КредитВВалюте,"ЧЦ=15; ЧДЦ=2; ЧГ="); Лист.Cells(НомерСтроки, 16).Value = Формат(Строка.КурсНаДату ,"ЧЦ=15; ЧДЦ=2; ЧГ="); НомерСтроки = НомерСтроки + 1; Сообщить(НомерСтроки); КонецЦикла; Сообщить("КОНЕЦ!"); Книга.SaveAs(ФайлДДС); ExcelПриложение.Application.Quit(); Конецпроцедуры |
|||
|
1
Wobland
02.04.13
✎
14:36
|
перед открытием грохаешь файл - формулы пропадают
|
|||
|
2
Shur1cIT
02.04.13
✎
14:39
|
(1) формулы в дальнейшим пользователям нужны, нужно вычисление в ячейках временно отключить
|
|||
|
3
EugeniaK
02.04.13
✎
14:44
|
(0)
Чтобы получить число в файле, нужно записывать число. Т.е. вместо Лист.Cells(НомерСтроки, 14).Value = Формат(Строка.ДебетВВалюте ,"ЧЦ=15; ЧДЦ=2; ЧГ="); указывать Лист.Cells(НомерСтроки, 14).Value =Строка.ДебетВВалюте; А формат задавать форматом ячейки Екселя |
|||
|
4
Нуф-Нуф
02.04.13
✎
14:45
|
получить ТабличныйДокумент, сохранить как эксель
|
|||
|
5
Иде я?
02.04.13
✎
14:48
|
Используй OpenXml
|
|||
|
6
Shur1cIT
02.04.13
✎
14:50
|
(4) (5) У меня в файле уже есть данные мало того есть они даже на том листе куда я выгружаю, мне необходимо аккуратно дополнить их. В эксели транзакции есть?
|
|||
|
7
dk
02.04.13
✎
14:53
|
Application.Calculation = xlCalculationManual
потом Application.Calculation = xlCalculationAutomatic |
|||
|
8
dk
02.04.13
✎
14:54
|
+
Application.ScreenUpdating = Ложь; .... Application.ScreenUpdating = Истина; |
|||
|
9
Shur1cIT
02.04.13
✎
17:03
|
(7) ок спасибо взлетело
|
| Форум | Правила | Описание | Секции | Поиск |