예제 #1
0
        /// <summary>
        /// 构建工作表
        /// </summary>
        /// <typeparam name="TTemplate">导入模板类型</typeparam>
        /// <param name="workbook">工作簿</param>
        /// <param name="innerWorkbook">内部工作簿</param>
        /// <param name="sheetIndex">工作表索引</param>
        /// <param name="headerRowIndex">表头行索引</param>
        /// <param name="dataRowStartIndex">数据行起始索引</param>
        /// <param name="maxColumnLength">最大列长度</param>
        /// <param name="enabledEmptyLine">启用空行模式。启用时,行内遇到空行将抛出异常错误信息</param>
        private void BuildSheet <TTemplate>(Bing.Offices.Abstractions.Metadata.Excels.IWorkbook workbook, NPOI.SS.UserModel.IWorkbook innerWorkbook, int sheetIndex, int headerRowIndex, int dataRowStartIndex, int maxColumnLength, bool enabledEmptyLine)
        {
            var innerSheet = GetSheet(innerWorkbook, sheetIndex);

            if (innerSheet.GetRow(0).PhysicalNumberOfCells > maxColumnLength)
            {
                throw new OfficeException($"导入数据初始化过多的无效列: {maxColumnLength}");
            }
            var sheet = workbook.CreateSheet(innerSheet.SheetName, headerRowIndex);

            HandleHeader(sheet, innerSheet, headerRowIndex);
            HandleBody <TTemplate>(sheet, innerSheet, dataRowStartIndex, enabledEmptyLine);
        }
예제 #2
0
 /// <summary>
 /// 获取工作表
 /// </summary>
 /// <param name="workbook">工作簿</param>
 /// <param name="sheetIndex">工作表索引</param>
 private ISheet GetSheet(NPOI.SS.UserModel.IWorkbook workbook, int sheetIndex = 0) => workbook.GetSheetAt(sheetIndex);