git_bsmd/ENI2/Excel/ExcelSimpleWriter.cs

72 lines
2.8 KiB
C#

// Copyright (c) 2017- schick Informatik
// Description: Dumps Maersk data into a simple Excel file
//
using System;
using System.Collections.Generic;
using ClosedXML.Excel;
using bsmd.database;
namespace ENI2.Excel
{
static class ExcelSimpleWriter
{
public static void WriteMaerskList(string filename, List<MaerskData> data)
{
data.Sort();
using (var workbook = new XLWorkbook())
{
var worksheet = workbook.Worksheets.Add("Sheet1");
// Headers in first row
worksheet.Cell(1, 1).Value = "ETA";
worksheet.Cell(1, 2).Value = "ETD";
worksheet.Cell(1, 3).Value = "Rotation name";
worksheet.Cell(1, 4).Value = "Vessel code";
worksheet.Cell(1, 5).Value = "Vessel name";
worksheet.Cell(1, 6).Value = "IMO";
worksheet.Cell(1, 7).Value = "Arr voy";
worksheet.Cell(1, 8).Value = "Dep voy";
worksheet.Cell(1, 9).Value = "Terminal name";
worksheet.Cell(1, 10).Value = "Operator code";
worksheet.Cell(1, 11).Value = "Pro arr";
worksheet.Cell(1, 12).Value = "Pro dep";
worksheet.Cell(1, 13).Value = "ID";
worksheet.Cell(1, 14).Value = "Remark";
for (int i = 0; i < data.Count; i++)
{
MaerskData md = data[i];
int row = i + 2; // Data starts from row 2
worksheet.Cell(row, 1).Value = md.ColA;
worksheet.Cell(row, 1).Style.NumberFormat.Format = "dd/hh:mm";
worksheet.Cell(row, 2).Value = md.ColB;
worksheet.Cell(row, 2).Style.NumberFormat.Format = "dd/hh:mm";
worksheet.Cell(row, 3).Value = md.ColC;
worksheet.Cell(row, 4).Value = md.ColD;
worksheet.Cell(row, 5).Value = md.ColE;
worksheet.Cell(row, 6).Value = md.ColF;
worksheet.Cell(row, 7).Value = md.ColG;
worksheet.Cell(row, 8).Value = md.ColH;
worksheet.Cell(row, 9).Value = md.ColI;
worksheet.Cell(row, 10).Value = md.ColJ;
worksheet.Cell(row, 11).Value = md.ColK;
worksheet.Cell(row, 12).Value = md.ColL;
worksheet.Cell(row, 13).Value = md.ColM;
worksheet.Cell(row, 14).Value = md.Remark;
if ((md.MessageCore != null) && (md.MessageCore.Cancelled ?? false))
{
worksheet.Row(row).Style.Font.Strikethrough = true;
}
}
workbook.SaveAs(filename);
}
}
}
}