/// <summary> /// Sets the sheet data. /// </summary> /// <param name="worksheet">The sheet.</param> /// <param name="rowIndex">The row index.</param> /// <param name="columnIndex">The column index.</param> /// <param name="data">The data.</param> /// <param name="flags">The import flags.</param> public static void SetSheetData(Worksheet worksheet, int rowIndex, int columnIndex, List <List <string> > data, TextFileOpenFlags flags) { int num = data.Count; int maxLength = GetMaxLength(data); if ((num != 0) && (maxLength != 0)) { ImportExportOptions opt = new ImportExportOptions(flags); opt.FixOptions(worksheet); int columnCount = opt.RowHeader ? worksheet.RowHeaderColumnCount : 0; int num4 = opt.ColumnHeader ? worksheet.ColumnHeaderRowCount : 0; int num5 = 0; maxLength -= columnCount; if (maxLength <= 0) { maxLength = 0; } num -= num4; if (num <= 0) { num5 = 0; } num -= num5; if (num <= 0) { num = 0; } if (opt.ExpandRows && ((rowIndex + num) > worksheet.RowCount)) { worksheet.RowCount = rowIndex + num; } if (opt.ExpandColumns && ((columnIndex + maxLength) > worksheet.ColumnCount)) { worksheet.ColumnCount = columnIndex + maxLength; } int num6 = 0; for (int i = 0; num6 < data.Count; i++) { List <string> rowData = data[num6]; if (rowData.Count > 0) { if ((num4 > 0) && (num6 < num4)) { SetRowData(worksheet, rowData, i, columnIndex, maxLength, SheetArea.ColumnHeader, opt); } else if ((num > 0) && (i < worksheet.GetRowCount(SheetArea.Cells))) { if (num6 == num4) { i = rowIndex; } SetRowData(worksheet, rowData, i, 0, columnCount, SheetArea.CornerHeader | SheetArea.RowHeader, opt); rowData.RemoveRange(0, columnCount); SetRowData(worksheet, rowData, i, columnIndex, maxLength, SheetArea.Cells, opt); } } num6++; } } }
/// <summary> /// Gets the sheet data. /// </summary> /// <param name="worksheet">The sheet.</param> /// <param name="rowStartIndex">Start index of the row.</param> /// <param name="rowEndIndex">End index of the row.</param> /// <param name="columnStartIndex">Start index of the column.</param> /// <param name="columnEndIndex">End index of the column.</param> /// <param name="flags">The save flags.</param> /// <returns></returns> public static List <List <object> > GetSheetData(Worksheet worksheet, int rowStartIndex, int rowEndIndex, int columnStartIndex, int columnEndIndex, TextFileSaveFlags flags) { List <List <object> > list = new List <List <object> >(); ImportExportOptions opt = new ImportExportOptions(flags); opt.FixOptions(worksheet); if (opt.ColumnHeader) { list.AddRange((IEnumerable <List <object> >)GetPartData(worksheet, 0, worksheet.GetRowCount(SheetArea.ColumnHeader) - 1, columnStartIndex, columnEndIndex, SheetArea.ColumnHeader, opt)); } list.AddRange((IEnumerable <List <object> >)GetPartData(worksheet, rowStartIndex, rowEndIndex, columnStartIndex, columnEndIndex, SheetArea.Cells, opt)); return(list); }