public static void DataFillRowsInSheet <T, R>(string fileFullName, EExcelType excel, string targetSheetName, SheetHeadDataToDo fillRowEvent, SheetRowDataToDo <R> fillRowsDataEvent, List <R> rows) where T : class where R : class { //单元格数据填充处理 #region 定目标sheet页 IWorkbook excelBook = GetExcelWorkBook(fileFullName, excel); if (excelBook == null) { //文件限定不正常 } //判断工作页是否存在 int index = excelBook.GetSheetIndex(targetSheetName); ISheet sheet = null; if (index < 0) {//不存在则创建 sheet = excelBook.CreateSheet(targetSheetName); } else { sheet = excelBook.GetSheetAt(index); } #endregion //列头 fillRowEvent(sheet); //行数据 if (fillRowsDataEvent != null) { fillRowsDataEvent(sheet, rows); } //数据存储 FileStream fs = new FileStream(fileFullName, FileMode.Open, FileAccess.Write, FileShare.ReadWrite); fs.Flush(); SaveSheet(excelBook, fs); }
public static void DataFillSheet <R>(string fileFullName, EExcelType excel, string targetSheetName, List <ExcelHeadAttribute> head, SheetRowDataToDo <R> fillRowsDataEvent, List <R> rows) where R : class { sheetHead = head; DataFillRowsInSheet <ExcelHeadAttribute, R>(fileFullName, excel, targetSheetName, FillSheetHead, fillRowsDataEvent, rows); }