Вывод в Excel через COM
Была задача, создать через Excel файл, через COM, оформленный «красиво».
Выкладываю примеры кода.
- Описание
- Подробнее
Описание
Начнем с простого — создадим СОM-Объект.
Пример функции создания:
// функция устанавливает связь с EXCEL
Функция EXCELСоздатьCOMОбъект() Экспорт
Excel = Неопределено;
# Если клиент тогда
Состояние(«Идет установка связи с в Excel «);
# КонецЕсли
Попытка
Excel = Новый COMОбъект(«Excel.Application»);
Исключение
# Если клиент тогда
Сообщить(«Ошибка создания обьекта Microsoft Excel» + ОписаниеОшибки(), СтатусСообщения.Внимание);
# КонецЕсли
КонецПопытки;
Возврат Excel;
КонецФункции //EXCELСоздатьCOMОбъект
Теперь создаем или открываем файл.
ФайлExcel = Excel.Documents.Open(«С:\MyExcelFile.xls»).
Пример функции создания файла из шаблона.
Функция EXCELОткрытьШаблон(Excel, ИмяФайла) Экспорт
ФайлExcel = Неопределено;
# Если клиент тогда
Состояние(«Идет открытие файла » + ИмяФайла + » , ждите…..» );
# КонецЕсли
Попытка
ФайлEXCEL = Excel.WorkBooks.Add(ИмяФайла);
Исключение
# Если клиент тогда
Сообщить(«Ошибка создания обьекта Microsoft Excel» + ОписаниеОшибки(), СтатусСообщения.Внимание);
# КонецЕсли
КонецПопытки;
Возврат ФайлExcel;
КонецФункции //EXCELОткрытьШаблон
Получим лист файла Excel
ЛистДанных = ФайлEXCEL.Worksheets(1);
ЛистСодержание = ФайлEXCEL.Worksheets(2);
ЛистДанных.Name = Формат(ТекущаяДата(),«ДФ=’dd.MM.yyyy ЧЧ мм'»); //Задаем имя листу
Теперь перейдем к работе с ячейками и диапазоном ячеек.
Ячейка = Cells(НомерСтроки, НомерКолонки) // Получим ячейку
ДиапазонЯчеек = ЛистДанных.Range(ЛистДанных.Cells.Item(НомерСтроки, НомерКолонки), ЛистДанных.Cells.Item(НомерСтроки +1 , НомерКолонки +1) //Получим диапазон ячеек
Ячейка.Value = «Задаем значение в ячейке» // Задаем значение в ячейке
Форматирование ячеек или диапазона ячеек.
Лучше форматировать диапазон ячеек, будет быстрее. Чтобы получить нужный результат создаешь макрос, форматируешь ячейку, смотришь код в макроса.
Значение констант например xlTop, xlToRight из EXCEL. В EXCEL есть VBA — alt+F11 и в нем Object Browser — F2 и в нем поиск.
Ячейка.Font.Size = 12;// Устанавливаем размер шрифта
Ячейка.Font.Name = «Century Gothic»; //Устанавливаем шрифт
Ячейка.Font.ColorIndex = 5;// Устанавливаем цвет
Ячейка.Font.Bold = Истина; // Устанавливаем жирный шрифт
Ячейка.Borders(5).LineStyle = —4142; // Очищаем все границы
Ячейка.Borders(1).LineStyle = 1; // Устанавливаем левую границу
Ячейка.Borders(8).LineStyle = 1; // Устанавливаем верхнюю границу
Ячейка.Borders(9).LineStyle = 1; // Устанавливаем нижнюю границу
Ячейка.Borders(10).LineStyle = 1; // Устанавливаем правую границу
Ячейка.Interior.Color = RGB(51, 153, 102); //цвет фона
Ячейка.HorizontalAlignment = —4131; //Горизонтальное выравнивание текста 4131 -лево 4108 центр -4152 право
Ячейка.VerticalAlignment = —4107; //Вертикальное выравнивание текста
Ячейка.IndentLevel = 6; //Отступ
Ячейка.Merge(Истина); //Объединение ячеек
Создание ссылки
Лист.Hyperlinks.Add(ДиапазонЯчеек, «», «ИмяОбласти», Гиперссылка, Гиперссылка); // ссылка на именованную область
ЛистExcel.Hyperlinks.add(ЛистExcel.cells(1,1),«»,«Лист3!A1»,«»,«моя ссылка») // ссылка на ячейку
Ячейка.Hyperlinks.Add(Ячейка, //infostart.ru,»» , «infostart.ru » , «infostart.ru «); // ссылка в интернет

