Similar presentations:
Надстройка Excel
1.
Надстройка Excel2.
Установка3.
Подключение к службе управления4.
Редактор сценариев5.
Параметры запуска6.
Сценарий отчета Excel• Преамбула
• Параметры отчета
• Параметры таблицы
• Заголовок таблицы
• Функции необходимые для отчета
• Построение таблицы
• Форматирование таблицы
7.
Входные параметры отчетаReportParams.StartDt = ReportParams.StartDt.AlignToDay();
ReportParams.EndDt = ReportParams.EndDt.AlignToDay();
DayIntervalData interval = new DayIntervalData() {
StartDt = ReportParams.StartDt,
EndDt = ReportParams.EndDt};
MeterPoint[] meterPoints = ReportParams
.ClassifierNodes
.SelectMany(x => x.GetAllChildrenOfClass(MeterPoint.GetClassInfo()))
.OfType<MeterPoint>().Distinct().ToArray();
8.
Preload Manager• для ТУ
using (PreloadManager.Current.RegisterCache(() => new
MeterPointGetEnergyValueCache(mpList,prms,dInterval2)))
• для ПУ
using (PreloadManager.Current.RegisterCache(() => new
DataSourceReceiveDataBatchCache(emList,prms,dInterval2)))
• для событий
//eventSources - это массив MeterPoint или ElectricityMeter
using (PreloadEventsManager.Preload(() => new EventsCache(eventSources, interval)))
9.
Получение данных по точке учётаvar sourceParameters = new Dictionary<TariffZoneBasedParameter, string>
{
{TariffZoneBasedParameter.Instances.EnergyActiveForwardTotalFixDay, "A+, кВт*ч" },
{TariffZoneBasedParameter.Instances.EnergyActiveReverseTotalFixDay, "A-, кВт*ч"},
{TariffZoneBasedParameter.Instances.EnergyReactiveForwardTotalFixDay, "R+, кВАр*ч"},
{TariffZoneBasedParameter.Instances.EnergyReactiveReverseTotalFixDay, "R-, кВАр*ч"},
};
var data = meterPoint.GetMeterPointFinalData(parametr, interval);
var startValue = data.FirstOrDefault(x => x.ValueDt != null && x.ValueDt == startDate);
var stopValue = data.FirstOrDefault(x => x.ValueDt != null && x.ValueDt == stopDate);
10.
Форматирование Excel• Установить рамки вокруг всех ячеек
var dataCells = sheet.Cells.GetSubrangeAbsolute(dataRow, 0, currentRow - 1, 8);
dataCells.SetBorder();
dataCells.SetBorders(MultipleBorders.All, Color.Black, LineStyle.Thin);
• Разрешить перенос по словам
dataCells.Style.WrapText = true;
• В заголовке таблицы установить жирный шрифт и цвет ячеек:
var header = sheet.Cells.GetSubrangeAbsolute(startRow, 0, startRow + 1, 8);
header.Style.Font.Weight = ExcelFont.BoldWeight;
header.Style.FillPattern.SetSolid(Color.FromArgb(0, 189, 215, 238));
11.
Полезные ссылки1. Подробный справочник API и пошаговое руководство по
разработке сценариев отчётов с примерами доступны по
адресу:
http://psdn.sicon.ru
2. Документация от Microsoft:
https://learn.microsoft.com/ru-Ru/dotnet/api/
3. Русскоязычный портал по обучению C#
https://metanit.com/sharp/tutorial/
programming