DD.WellWorkover.Cloud/AsbCloudInfrastructure/Services/AutoGeneratedDailyReports/AutogeneratedDailyReportBlocks/TimeBalanceExcelBlockWriter.cs
Степанов Дмитрий Александрович 1413e80f09 Формирование суточных отчётов
1. Добавил сервис для работы с суточными отчётами.
2. Сделал формирование отчёта в Excel файле по заготовленному шаблону.
3. Поправил Dto.
4. Реализация методов в контроллере + небольшое исправление. В методе получения списка добавил запрос, который позволяет получать данные по параметрам.
2023-07-24 11:14:07 +05:00

38 lines
1.1 KiB
C#

using System.Linq;
using AsbCloudApp.Data.AutogeneratedDailyReport;
using ClosedXML.Excel;
namespace AsbCloudInfrastructure.Services.AutoGeneratedDailyReports.AutogeneratedDailyReportBlocks;
public class TimeBalanceExcelBlockWriter : IExcelBlockWriter
{
private const int rowHeaderBlock = 27;
private const int columnName = 1;
private const int columnDurationHours = 2;
public void Write(IXLWorksheet sheet, AutoGeneratedDailyReportDto report)
{
if(!report.TimeBalance.Any())
return;
for (int i = 0; i < report.TimeBalance.Length; i++)
{
var row = sheet.Row(1 + i + rowHeaderBlock);
row.Cell(columnName).Value = report.TimeBalance[i].Name;
row.Cell(columnDurationHours).Value = report.TimeBalance[i].DurationHours;
AddBorderToCell(row.Cell(columnName));
AddBorderToCell(row.Cell(columnDurationHours));
}
}
private void AddBorderToCell(IXLCell cell)
{
cell.Style.Border.TopBorder = XLBorderStyleValues.Thin;
cell.Style.Border.BottomBorder = XLBorderStyleValues.Thin;
cell.Style.Border.LeftBorder = XLBorderStyleValues.Thin;
cell.Style.Border.RightBorder = XLBorderStyleValues.Thin;
}
}