/// <summary>
        ///     Workbook2EntityList
        /// </summary>
        /// <typeparam name="TEntity">EntityType</typeparam>
        /// <param name="workbook">excel workbook</param>
        /// <param name="sheetIndex">sheetIndex</param>
        /// <returns>entity list</returns>
        public static List <TEntity> ToEntityList <TEntity>([NotNull] this IWorkbook workbook, int sheetIndex)
            where TEntity : new()
        {
            if (workbook.NumberOfSheets <= sheetIndex)
            {
                throw new ArgumentOutOfRangeException(nameof(sheetIndex),
                                                      string.Format(Resource.IndexOutOfRange, nameof(sheetIndex), workbook.NumberOfSheets));
            }
            var sheet = workbook.GetSheetAt(sheetIndex);

            return(NpoiHelper.SheetToEntityList <TEntity>(sheet, sheetIndex));
        }
Exemple #2
0
        /// <summary>
        ///     import dataTable to workbook first sheet
        /// </summary>
        /// <typeparam name="TEntity">TEntity</typeparam>
        /// <param name="workbook">workbook</param>
        /// <param name="dataTable">dataTable</param>
        /// <param name="sheetIndex">sheetIndex</param>
        /// <returns>the sheet LastRowNum</returns>
        public static int ImportData <TEntity>([NotNull] this IWorkbook workbook, [NotNull] DataTable dataTable,
                                               int sheetIndex)
        {
            if (workbook is HSSFWorkbook)
            {
                if (sheetIndex >= InternalConstants.MaxSheetCountXls)
                {
                    throw new ArgumentException(
                              string.Format(Resource.IndexOutOfRange, nameof(sheetIndex), InternalConstants.MaxSheetCountXls),
                              nameof(sheetIndex));
                }
            }
            else
            {
                if (sheetIndex >= InternalConstants.MaxSheetCountXlsx)
                {
                    throw new ArgumentException(
                              string.Format(Resource.IndexOutOfRange, nameof(sheetIndex), InternalConstants.MaxSheetCountXls),
                              nameof(sheetIndex));
                }
            }

            var configuration = InternalHelper.GetExcelConfigurationMapping <TEntity>();

            while (workbook.NumberOfSheets <= sheetIndex)
            {
                if (workbook.NumberOfSheets == sheetIndex)
                {
                    var sheetName = typeof(TEntity).Name;
                    if (configuration.SheetSettings.TryGetValue(sheetIndex, out var sheetSetting))
                    {
                        sheetName = sheetSetting.SheetName;
                    }
                    workbook.CreateSheet(sheetName);
                }
                else
                {
                    workbook.CreateSheet();
                }
            }

            var sheet = NpoiHelper.DataTableToSheet <TEntity>(workbook.GetSheetAt(sheetIndex), dataTable, sheetIndex);

            return(sheet.LastRowNum);
        }
Exemple #3
0
 /// <summary>
 ///     Sheet2EntityList
 /// </summary>
 /// <typeparam name="TEntity">EntityType</typeparam>
 /// <param name="sheet">excel sheet</param>
 /// <param name="sheetIndex">sheetIndex</param>
 /// <returns>entity list</returns>
 public static List<TEntity> ToEntityList<TEntity>([NotNull] this ISheet sheet, int sheetIndex)
     where TEntity : new() => NpoiHelper.SheetToEntityList<TEntity>(sheet, sheetIndex);
Exemple #4
0
 /// <summary>
 /// import dataTable to sheet
 /// </summary>
 /// <typeparam name="TEntity">EntityType</typeparam>
 /// <param name="sheet">sheet</param>
 /// <param name="dataTable">dataTable</param>
 /// <param name="sheetIndex">sheetIndex</param>
 public static ISheet ImportData<TEntity>([NotNull] this ISheet sheet, DataTable dataTable, int sheetIndex)
      => NpoiHelper.DataTableToSheet<TEntity>(sheet, dataTable, sheetIndex);
Exemple #5
0
 /// <summary>
 ///     import entityList to sheet
 /// </summary>
 /// <typeparam name="TEntity">EntityType</typeparam>
 /// <param name="sheet">sheet</param>
 /// <param name="list">entityList</param>
 /// <param name="sheetIndex">sheetIndex</param>
 public static ISheet ImportData<TEntity>([NotNull] this ISheet sheet, IEnumerable<TEntity> list, int sheetIndex)
      => NpoiHelper.EntityListToSheet(sheet, list, sheetIndex);