/// <summary> /// Initializes new instance with single provided table/sheet export config. /// </summary> /// <param name="sheetConfig"> /// Defines export of 1 data table into 1 sheet. /// </param> public DataSetExportAutoConfig(ISheetExportConfig sheetConfig) : this() { Check.DoRequireArgumentNotNull(sheetConfig, "sheetConfig"); _tables.Add(sheetConfig); }
/// <summary> /// Lower-level initializer which can work with any data item type. /// </summary> /// <param name="sheet"> /// Mandatory /// </param> /// <param name="index"> /// Relative 0-based sheet column index /// </param> /// <param name="caption"> /// Column header text /// </param> /// <param name="columnDataSource"> /// Mandatory /// </param> public DataColumnExportAutoConfig(ISheetExportConfig sheet, int index, string caption, IColumnDataSource columnDataSource) { Check.DoRequireArgumentNotNull(sheet, nameof(sheet)); Check.DoRequireArgumentNotNull(caption, nameof(caption)); Check.DoRequireArgumentNotNull(columnDataSource, nameof(columnDataSource)); ColumnDataSource = columnDataSource; SheetExportConfig = sheet; Index = index; Caption = caption; var isPrimitive = IsPrimitive(columnDataSource.DataType); var isNumeric = isPrimitive && IsNumeric(columnDataSource.DataType); var isDateTime = !isNumeric && IsDateTime(columnDataSource.DataType); HorizontalAlignment = (isDateTime || isPrimitive) ? Write.HorizontalAlignment.Right : Write.HorizontalAlignment.Left; VerticalAlignment = Write.VerticalAlignment.Top; AutoFit = true; if (isDateTime) { Format = DefaultDateTimeFormat; } else if (columnDataSource.DataType == typeof(string)) { MaximumWidth = 50; } }
/// <summary> /// Initializes a new instance of the <see cref="DataTableToSheetExporter"/> class. /// </summary> public DataTableToSheetExporter(ExcelWorksheet excelWorksheet, ISheetExportConfig sheetExportConfig, IDataTable dataTable) { Check.DoRequireArgumentNotNull(excelWorksheet, "excelWorksheet"); Check.DoRequireArgumentNotNull(sheetExportConfig, "sheetExportConfig"); Check.DoRequireArgumentNotNull(dataTable, "dataTable"); ExcelWorksheet = excelWorksheet; SheetExportConfig = sheetExportConfig; _minPopulatedSheetColumnIndex = GetSheetColumnIndex(SheetExportConfig.Columns.Min(c => c.Index)); _maxPopulatedSheetRowIndex = GetSheetColumnIndex(SheetExportConfig.Columns.Max(c => c.Index)); DataTable = dataTable; }
/// <summary> /// Initializes a new instance of the <see cref="DataColumnExportAutoConfig"/> class. /// </summary> /// <param name="sheet"> /// Mandatory /// </param> /// <param name="column"> /// ADO.NET data column from which the sheet column is going to be populated. /// </param> /// <param name="sheetColumnIndex"> /// 0-based relative sheet column index to receive data. /// </param> public DataColumnExportAutoConfig(ISheetExportConfig sheet, DataColumn column, int sheetColumnIndex, string caption) : this(sheet, sheetColumnIndex, caption, new DataColumnSource(column)) { }
/// <summary> /// Initializes new instance from existing <see cref="DataColumn"/> and explicitly specified column position in the sheet. /// </summary> /// <param name="sheet"> /// Mandatory, containing sheet export configuration /// </param> /// <param name="column"> /// Source data column /// </param> /// <param name="sheetColumnIndex"> /// 0-based relative index of the column in the sheet /// </param> public DataColumnExportAutoConfig(ISheetExportConfig sheet, DataColumn column, int sheetColumnIndex) : this(sheet, column, sheetColumnIndex, column.ColumnName) { }
/// <param name="sheet"> /// Mandatory, containing sheet export configuration /// </param> /// <param name="column"> /// Source data column /// </param> public DataColumnExportAutoConfig(ISheetExportConfig sheet, DataColumn column) : this(sheet, column, column.Ordinal) { }
public void AddSheet(ISheetExportConfig sheetConfig) { Check.DoRequireArgumentNotNull(sheetConfig, "sheetConfig"); _tables.Add(sheetConfig); }