コード例 #1
0
ファイル: AdoTableReader.cs プロジェクト: erisonliang/ExcelEi
        /// <summary>
        ///     Read virtual table inside ado.net <paramref name="dataTable"/>, assigning given column names;
        ///     columns of the virtual table can be sparse.
        /// </summary>
        /// <param name="dataTable">
        ///     Mandatory
        /// </param>
        /// <param name="startRowIndex">
        ///     0-based row index of the first row with data
        /// </param>
        /// <param name="endRowIndex">
        ///     Optional
        /// </param>
        /// <param name="columns">
        ///     Dictionary with key being assigned column name and value - zero-based column index in <paramref name="dataTable"/>.
        /// </param>
        public AdoTableReader(DataTable dataTable, int startRowIndex, int?endRowIndex, IList <KeyValuePair <string, int> > columns)
        {
            Check.DoRequireArgumentNotNull(dataTable, nameof(dataTable));
            Check.DoRequireArgumentNotNull(columns, nameof(columns));

            _columnNames = columns.OrderBy(p => p.Value).Select(p => p.Key).ToList();
            var columnNameIndex = columns.ToDictionary(p => p.Key, p => p.Value);

            Rows = new AdoTableRowReaderCollection(startRowIndex, endRowIndex, dataTable, columnNameIndex);
        }
コード例 #2
0
ファイル: AdoTableReader.cs プロジェクト: erisonliang/ExcelEi
        /// <summary>
        ///     Read whole table, without renaming or excluding columns.
        /// </summary>
        /// <param name="dataTable">
        ///     Mandatory
        /// </param>
        public AdoTableReader(DataTable dataTable)
        {
            Check.DoRequireArgumentNotNull(dataTable, nameof(dataTable));

            _columnNames = dataTable.Columns.Cast <DataColumn>().Select(c => c.ColumnName).ToList();

            var columnNameIndex = dataTable.Columns.Cast <DataColumn>().ToDictionary(c => c.ColumnName, c => c.Ordinal);

            Rows = new AdoTableRowReaderCollection(0, null, dataTable, columnNameIndex);
        }