// 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 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); } } } }