ListExcel导出(加载模板)
1 /// <summary> 2 /// List根据模板导出ExcelMemoryStream 3 /// </summary> 4 /// <param name="list"></param> 5 /// <param name="templdateName"></param> 6 public static MemoryStream ExportListByTempale(List<TemplateMode> list, string templdateName) 7 { 8 try 9 { 10 11 string templatePath = HttpContext.Current.Server.MapPath("/") + "/Resource/ExcelTemplate/"; 12 string templdateName1 = string.Format("{0}{1}", templatePath, templdateName); 13 14 FileStream fileStream = new FileStream(templdateName1, FileMode.Open, FileAccess.Read); 15 ISheet sheet = null; 16 if (templdateName.IndexOf(".xlsx") == -1)//2003 17 { 18 HSSFWorkbook hssfworkbook = new HSSFWorkbook(fileStream); 19 sheet = hssfworkbook.GetSheetAt(0); 20 SetPurchaseOrder(sheet, list); 21 sheet.ForceFormulaRecalculation = true; 22 using (MemoryStream ms = new MemoryStream()) 23 { 24 hssfworkbook.Write(ms); 25 ms.Flush(); 26 return ms; 27 } 28 } 29 else//2007 30 { 31 XSSFWorkbook xssfworkbook = new XSSFWorkbook(fileStream); 32 sheet = xssfworkbook.GetSheetAt(0); 33 SetPurchaseOrder(sheet, list); 34 sheet.ForceFormulaRecalculation = true; 35 using (MemoryStream ms = new MemoryStream()) 36 { 37 xssfworkbook.Write(ms); 38 ms.Flush(); 39 return ms; 40 } 41 } 42 43 } 44 catch (Exception) 45 { 46 throw; 47 } 48 } 49 /// <summary> 50 /// 赋值单元格 51 /// </summary> 52 /// <param name="sheet"></param> 53 /// <param name="list"></param> 54 private static void SetPurchaseOrder(ISheet sheet, List<TemplateMode> list) 55 { 56 try 57 { 58 foreach (var item in list) 59 { 60 IRow row = null; 61 ICell cell = null; 62 row = sheet.GetRow(item.row); 63 if (row == null) 64 { 65 row = sheet.CreateRow(item.row); 66 } 67 cell = row.GetCell(item.cell); 68 if (cell == null) 69 { 70 cell = row.CreateCell(item.cell); 71 } 72 cell.SetCellValue(item.value); 73 } 74 } 75 catch (Exception) 76 { 77 throw; 78 } 79 } 80 #endregion
时间: 2024-11-04 22:48:41