string GetSpan(ExcelWorksheet.MergeCellsCollection merged, int row, int column) { // Unused code. The row/colspan was producing strange results. string span = ""; string m = merged[row, column]; if (m == null) { return(""); } var addr = new ExcelAddress(m); int rowspan = 1 + addr.End.Row - addr.Start.Row; int colspan = 1 + addr.End.Column - addr.Start.Column; if (rowspan > 1) { span += $" rowspan={rowspan}"; } if (colspan > 1) { span += $" colspan={colspan}"; } return(span); }
bool IsFirstMergedCell(ExcelWorksheet.MergeCellsCollection merged, int row, int column) { // Check if this cell is the first in a merged cell group // Also returns true if it's not a merged cell (non-merged cells are always first in their own group of 1) string m = merged[row, column]; if (m == null) { return(true); } var addr = new ExcelAddress(m); return(row == addr.Start.Row && column == addr.Start.Column); }
public void Read() { jsonFile = jsonFilesDirectory + "/" + Path.GetFileName(fileName).Substring(82).Replace(".xlsx", ".json"); ExcelPackage excelFile = new ExcelPackage(new FileInfo(fileName)); ExcelWorksheet worksheet = excelFile.Workbook.Worksheets[1]; ExcelWorksheet.MergeCellsCollection mergedCells = worksheet.MergedCells; List <Entity> entidades = new List <Entity>(); foreach (string mc in mergedCells) { if (mc.StartsWith("C") == false) { continue; } ExcelRange m = worksheet.Cells[mc.ToString()]; int startrow = m.Start.Row; if (startrow <= 4) { continue; } int endrow = m.End.Row; while (startrow <= endrow) { string cell = "D" + startrow; entidades.Add(new Entity() { entidad = m.First().Value.ToString(), ciudad = worksheet.Cells[cell].Value.ToString(), magna = worksheet.Cells[cell.Replace("D", "E")].Value.ToString(), premium = worksheet.Cells[cell.Replace("D", "F")].Value.ToString(), diesel = worksheet.Cells[cell.Replace("D", "G")].Value.ToString() }); startrow++; } } GenerateJsonFiles(entidades); }