Создание диаграммы excel из 1С

Создание диаграммы excel из 1С

1С поддерживает работу с различными видами диаграмм, но иногда требуется программно создать диаграмму в excel. Такая потребность может быть обусловлена жесткой постановкой задачи заказчиком или необходимостью иметь более богатые возможности для работы с диаграммами, например, создавать комбинированную диаграмму, чего 1С пока не позволяет.

Создание диаграммы в excel состоит из нескольких этапов:

  1. Создание экземпляра Excel;
  2. Заполнение источника данных для построения диаграммы;
  3. Создание диаграммы и заполнение ее свойств;
  4. Вывод полученных данных пользователю для просмотра или сохранение файла.

Диаграмма может быть создана на листе с источником данных или отдельном листе.

Программная реализация описанного алгоритма с созданием диаграммы на листе с источником данных может выглядеть так:

&НаКлиенте
Процедура СоздатьДиаграммуНаОтдельномЛисте(Команда)
	
	// Этап 1. Создание экземпляра Excel
	Попытка
		Эксель = Новый COMОбъект("Excel.Application");
		Книга = Эксель.Workbooks.Add();
		Лист = Книга.Sheets(1);
	Исключение
		ПоказатьПредупреждение(, "Возникла проблема: " + ОписаниеОшибки());
		Возврат;
	КонецПопытки;
	
	// Этап 2. Вызов процедуры заполнения источника данных
	СформироватьИсточникДанных(Лист);
	
	// Этап 3. Создание диаграммы и заполнение ее свойств
	ОбластьДанных = Лист.Range(Лист.Cells(1, 1), Лист.Cells(3, 13)); // определение области данных
	Эксель.Charts.Add(); // добавление диаграммы
	Эксель.ActiveChart.SetSourceData(ОбластьДанных); // установка области данных диаграммы
	Эксель.ActiveChart.ChartType = 51; // установка типа диаграммы
	Эксель.ActiveChart.HasDataTable = 1; // отображать под диаграммой таблицу с данными
	Эксель.ActiveChart.HasTitle = 1; // отображать заголовок
	Эксель.ActiveChart.ChartTitle.Text = "Моя диаграмма"; // текст заголовка
	
	// Этап 4. Вывод результата пользователю
	Эксель.Visible = Истина;
	
КонецПроцедуры

Заполнение источника данных вынесено в отдельную процедуру:

&НаКлиенте
Процедура СформироватьИсточникДанных(Лист)
	
	ГСЧ = Новый ГенераторСлучайныхЧисел(ТекущаяУниверсальнаяДатаВМиллисекундах());
	
	Лист.Cells(2, 1).Value = "План";
	Лист.Cells(3, 1).Value = "Факт";
	Для Ном = 1 По 12 Цикл
		Лист.Cells(1, Ном+1).Value = Формат(ДобавитьМесяц(НачалоГода(ТекущаяДата()), Ном-1), "ДФ=MMM");
		Лист.Cells(2, Ном+1).Value = ГСЧ.СлучайноеЧисло(0, 100);
		Лист.Cells(3, Ном+1).Value = ГСЧ.СлучайноеЧисло(0, 100);
	КонецЦикла;
	
КонецПроцедуры

При необходимости вывести диаграмму на листе с источником данных необходимо заменить этап 3 описанного алгоритма на:

ОбластьДанных = Лист.Range(Лист.Cells(1, 1), Лист.Cells(3, 13)); // определение области данных
Диаграмма = Лист.ChartObjects().Add(1, 100, 500, 400).Chart; // создание диаграммы и определение ее размеров
Диаграмма.SetSourceData(ОбластьДанных); // установка области данных диаграммы
Диаграмма.ChartType = 51; // установка типа диаграммы
Диаграмма.HasDataTable = 0; // отображать под диаграммой таблицу с данными
Диаграмма.HasTitle = 1; // отображать заголовок
Диаграмма.ChartTitle.Text = "Моя диаграмма"; // текст заголовка

Код подробно прокомментирован и в дополнительном описании, наверное, не нуждается. Перечислю только некоторые возможные значения свойства ChartType:

  • 4 — график;
  • 5 — круговая;
  • 51 — гистограмма с группировкой;
  • 54 — объемная гистограмма с группировкой;
  • 57 — линейчатая с группировкой;
  • 65 — график с маркерами;
  • 72 — точечная с гладкими кривыми и маркерами.

 

Смотри также:

Основные способы обмена 1С с другими системами
Работа с файлами DBF в 1С
Сертификаты 1С

Добавить комментарий

Ваш e-mail не будет опубликован.