Esempio n. 1
0
        private WorkbookSheet CreateSheet(string workbookName, ISheet sheet)
        {
            Assert(workbookName, sheet);
            if (!GetHeader(sheet.GetRow(0), out var header))
            {
                throw new InvalidFormatException($"WorkbookSheet '{sheet.SheetName}' in workbook '{workbookName}' has no workbookHeader. WorkbookHeader should be the first row with only text values.");
            }

            List <WorkbookColumn> columns = new List <WorkbookColumn>(header.Length);
            List <WorkbookRow>    rows    = new List <WorkbookRow>(sheet.LastRowNum);

            for (int i = 0; i < sheet.LastRowNum; i++)
            {
                WorkbookRow workbookRow = GetRow(sheet.GetRow(i), header.Length);
                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(sheet.SheetName, header, columns, rows));
        }
Esempio n. 2
0
        /// <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));
        }