/// <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)); }
/// <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); }
/// <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);
/// <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);
/// <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);