public ImportExportOptions(TextFileOpenFlags flags) { this.rowHeader = (flags & TextFileOpenFlags.IncludeRowHeader) == TextFileOpenFlags.IncludeRowHeader; this.columnHeader = (flags & TextFileOpenFlags.IncludeColumnHeader) == TextFileOpenFlags.IncludeColumnHeader; this.unFormatted = (flags & TextFileOpenFlags.UnFormatted) == TextFileOpenFlags.UnFormatted; this.formula = (flags & TextFileOpenFlags.ImportFormula) == TextFileOpenFlags.ImportFormula; this.expandRows = true; this.expandColumns = true; }
/// <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> /// Sets the range text. /// </summary> /// <param name="worksheet">The sheet.</param> /// <param name="row">The row.</param> /// <param name="column">The column.</param> /// <param name="data">The data.</param> /// <param name="rowDelimiter">The row delimiter.</param> /// <param name="columnDelimiter">The column delimiter.</param> /// <param name="cellDelimiter">The cell delimiter.</param> /// <param name="flags">The load flags.</param> public static void SetRangeText(Worksheet worksheet, int row, int column, string data, string rowDelimiter, string columnDelimiter, string cellDelimiter, TextFileOpenFlags flags) { if (worksheet == null) { throw new ArgumentNullException("sheet"); } if ((row < -1) || (row >= worksheet.RowCount)) { throw new IndexOutOfRangeException(string.Format(ResourceStrings.InvaildRowIndexWithAllowedRangeBehind, (object[])new object[] { ((int)row), ((int)(worksheet.RowCount - 1)) })); } if ((column < -1) || (column >= worksheet.ColumnCount)) { throw new IndexOutOfRangeException(string.Format(ResourceStrings.InvalidColumnIndexWithAllowedRangeBehind, (object[])new object[] { ((int)column), ((int)(worksheet.ColumnCount - 1)) })); } if (!string.IsNullOrEmpty(data)) { if (row == -1) { row = 0; } if (column == -1) { column = 0; } List <List <string> > list = ParseText(data, rowDelimiter, columnDelimiter, cellDelimiter); if ((list != null) && (list.Count > 0)) { SetSheetData(worksheet, row, column, list, flags); } } }