Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 мая 2025, 07:38

Выгрузка в эксель на 2х листах(лист1, лист2)

Автор Franc07, 07 мая 2025, 14:31

sali и 1 гость просматривают эту тему.

Franc07

Доброго дня! Нужно выгрузить данные в эксель на двух листах(лист1,лист2) Подскажите пожалуйста что не так делаю, вот мой код:

&НаКлиенте
Процедура ФормированиеЕксель()
ДокументЕксель = Новый COMОбъект("Excel.Application");
КнигаЕксель = ДокументЕксель.WorkBooks.Add(); //Создаем книгу ексель
ЛистЕксель = КнигаЕксель.WorkSheets(1); //Позиционируемся на 1-м листе
СтруктураМассивОМС = ВыгрузкаВЭксельНаСервереОМС();
Если СтруктураМассивОМС.Количество() <> 0 Тогда
ЛистЕксель.Cells(1, 1).Value = "Табельный номер";
ЛистЕксель.Cells(1, 2).Value = "ФИО";
ЛистЕксель.Cells(1, 3).Value = "Сумма премии";
ЛистЕксель.Cells(1, 4).Value = "Источник финансирования";

НомерСтроки = 2;
Для каждого СтрокаТаблицы Из СтруктураМассивОМС Цикл
ЛистЕксель.Cells(НомерСтроки, 1).Value = Строка(СтрокаТаблицы.ТабНомер);
ЛистЕксель.Cells(НомерСтроки, 2).Value = Строка(СтрокаТаблицы.ФИО);
ЛистЕксель.Cells(НомерСтроки, 3).Value = Строка(СтрокаТаблицы.ФактПремия);
ЛистЕксель.Cells(НомерСтроки, 4).Value = Строка(СтрокаТаблицы.ИсточникФинансирова ния);
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
КонецЕсли;



ЛистЕксель2 = КнигаЕксель.WorkSheets(2); //Позиционируемся на 2-м листе
СтруктураМассивПД = ВыгрузкаВЭксельНаСервереПД();
Если СтруктураМассивПД.Количество() <> 0 Тогда
ЛистЕксель2.Cells(1, 1).Value = "Табельный номер";
ЛистЕксель2.Cells(1, 2).Value = "ФИО";
ЛистЕксель2.Cells(1, 3).Value = "Сумма премии";
ЛистЕксель2.Cells(1, 4).Value = "Источник финансирования";

НомерСтроки = 2;
Для каждого СтрокаТаблицы Из СтруктураМассивПД Цикл
ЛистЕксель2.Cells(НомерСтроки, 1).Value = Строка(СтрокаТаблицы.ТабНомер);
ЛистЕксель2.Cells(НомерСтроки, 2).Value = Строка(СтрокаТаблицы.ФИО);
ЛистЕксель2.Cells(НомерСтроки, 3).Value = Строка(СтрокаТаблицы.ФактПремия);
ЛистЕксель2.Cells(НомерСтроки, 4).Value = Строка(СтрокаТаблицы.ИсточникФинансирова ния);
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
КонецЕсли;


ПутьВыгрузки = "C:\выгрузка";
КнигаЕксель.SaveAs(ПутьВыгрузки + НазваниеФайла + ".xlsx"); // Сохраняем файл ексель
ДокументЕксель.Application.Quit(); // Закрываем COM соединение
КонецПроцедуры

Ошибка такую выдает: ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Произошла исключительная ситуация (0x8002000b)
[ОшибкаИспользованияВстроенногоЯзыка]

antoneus

Зачем COM-объект? Формул нет, одни буковки и циферки. Делайте через ТабличныйДокумент и ПакетОтображаемыхДокументов.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск