private static bool GetHeader(IRow headingRow, out WorkbookHeader result) { try { int cellsQuantity = headingRow.LastCellNum; if (cellsQuantity == 0) { result = new WorkbookHeader(); return(false); } List <string> columnHeaders = new List <string>(cellsQuantity); for (int i = 0; i < cellsQuantity; i++) { string value = headingRow.GetCell(i).StringCellValue; columnHeaders.Add(value); } result = new WorkbookHeader(columnHeaders); return(true); } catch { result = new WorkbookHeader(); return(false); } }
/// <summary> /// Single file is a single workbook sheet. /// </summary> /// <param name="filePath">Path to single txt file.</param> /// <returns>Async tack with <see cref="WorkbookSheet"/>.</returns> private static async Task <WorkbookSheet> CreateSheet(string filePath) { string[] sheetLines = await TextFileLoader.LoadTxtFile(filePath).ConfigureAwait(false); WorkbookHeader header = new WorkbookHeader(GetRow(sheetLines[0])); List <WorkbookColumn> columns = new List <WorkbookColumn>(header.Length); List <WorkbookRow> rows = new List <WorkbookRow>(sheetLines.Length); // starts from 1 because line 0 is a header for (int i = 0; i < sheetLines.Length; i++) { WorkbookRow workbookRow = GetRow(sheetLines[i]); rows.Add(workbookRow); } for (int i = 0; i < header.Length; i++) { WorkbookColumn tmpWorkbookColumn = GetColumn(i, header[i], ref rows); columns.Add(tmpWorkbookColumn); } return(new WorkbookSheet(Path.GetFileName(filePath), header, columns, rows)); }