0. Peleng 19 01.12.16 00:14 Сейчас в теме

1С:ExcelReport - COM компонента для вывода в Excel в стиле 1С

Когда необходимо создать из 1С файл Excel с богатым форматированием и встроенными в ячейки формулами, приходится писать на языке 1С довольно объемный код. Предлагаемая компонента позволяет создать макет Excel и вывести отчет «как в 1С», с использованием простого задания параметров и вывода/присоединения секций.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. Peleng 19 16.03.17 12:17 Сейчас в теме
Пример для 1с 8:
Попытка
		Экс = ПолучитьCOMОбъект("", "rsa1CExtRep.ExcelAs1CReport");
	Исключение             
		Сообщить("Не получилось создать объект ""rsa1CExtRep.ExcelAs1CReport""!");
		Возврат;
	КонецПопытки;                                                                         
	Экс.ИсходнаяТаблица("d:\Шаблоны\Шаблон отчета.xls", "Лист1");

	Экс.УстановитьЗначениеПеременной("ИмяОтчета", "Отчет по затратам"); 

	Экс.ВывестиСекцию("Отчет");
	
        Экс.СохранитьКак("d:\"+ИмяПользователя()+"\Отчет.xls");
        Экс.Показать();
Показать
2. Peleng 19 16.03.17 12:17 Сейчас в теме
3. agdam_m 3 18.09.18 13:57 Сейчас в теме
А что из себя представляет данная компонента? Какой у нее API?
4. Peleng 19 19.09.18 15:02 Сейчас в теме
(3) вы наверное имели ввиду не API, а технологию, на которой работает компонента? Технология COM, а точнее OLE Automation, написана на Vb 6. Написана давно и с тех пор постоянно мной применяется... пережила 7.7 и успешно живет на 8.3...
API компоненты это те методы и свойства, которые она предоставляет. Если вы все же имели ввиду API компоненты, то документации я не делал... API можно посмотреть в любом Object Browser, например, в Word или Excel.
В компоненте 2 класса:
ExcelAs1CReport - для создания отчета, как описано в статье
ExcelTo1CReader - для чтения данных из Excel по именам колонок, но этот класс можно считать устаревшим, т.к. технология чтения из Excel со времен 7.7 очень развилась и в 8.3 врядли у кого-то с этим проблемы... хотя эта компонента сама ищет заголовки колонок и в некоторых случаях может быть полезна, если пользователи присылают таблицы в которых заголовки все время в разных колонках и столбцах...

ExcelAs1CReport имеет следующие методы:
- Public Sub УстановитьФормулуЯчейки(Строка As Long, Колонка As Long, Формула As String)
- Public Sub ИсходнаяТаблица(ПутьКФайлуШаблонаТаблицы As String, ИмяТаблицы As String)
- Public Sub ВывестиСекцию(ИмяСекции As String, Optional ИзмШиринуКолонок As Long = 1, Optional ИзмВысотуСтрок As Long = 1)
- Public Sub ПрисоединитьСекцию(ИмяСекции As String, Optional ИзмШиринуКолонок As Long = 1)
- Public Sub НоваяСтраница()
- Public Sub Показать()
- Public Sub СохранитьКак(ПутьКФайлу As String)
- Public Sub УстановитьЗначениеПеременной(ИмяПеременной As String, Значение As Variant)
- Public Function ПоказатьОшибки() As String
- Public Function ЛистШаблона() As Object
- Public Function ЛистОтчета() As Object
- Public Function ТекущаяСтрока() As Long
- Public Function ТекущаяКолонка() As Long
- Public Function ТекущаяВысотаСекции() As Long

Если вам компонента действительно нужна, то спрашивайте, что не понятно, буду отвечать...
5. Peleng 19 19.09.18 15:17 Сейчас в теме
(3) кстати, только сейчас заметил, что в статье, в примере, есть ошибка...
там в поле Цена устанавливается формула, а не значение и должно быть:
не Экс.УстановитьЗначениеПеременной("Цена",Цена);
а Экс.УстановитьФормулуЯчейки(НомерСтроки, НомерКолонки, Цена);
где НомерСтроки, НомерКолонки надо посчитать при выводе....
6. acanta 45 19.09.18 21:34 Сейчас в теме
Макет можно сделать в 1с(mxl), или нужно создавать файл excel?
7. Peleng 19 20.09.18 14:44 Сейчас в теме
макет надо делать в Эксель, в этом и был смысл компоненты... в mxl нельзя создать формулы в ячейках... да и форматирование точно скопировать из mxl в эксель трудно, хотя последние версии 1с не плохо с этим справляются, но не все равно не на 100%... а сам макет эксель можно зашить в конфигурацию и копировать во временный файл перед использованием, в этом проблемы нет...
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Разработчик 1С
Москва
зарплата от 100 000 руб. до 160 000 руб.
Полный день

Программист 1С
Москва
зарплата от 80 000 руб.
Полный день

Консультант-аналитик 1С
Санкт-Петербург
Полный день

Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 120 000 руб.
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству