EPPlus介紹
EPPlus是一個使用Open Office XML(xlsx)文件格式,能讀寫Excel 2007/2010 文件的開源組件,在導出Excel的時候不需要電腦上安裝office。
基本上Excel上的各種功能(例如圖表、VBA、數據透視表、加密、數據驗證等)Epplus都能實現,它的一個缺點就是不支持導出2003版的Excel。
1、創建Excel
首先引入EPPlus的DLL文件,
創建Excel,所有代碼均放在這個using語句里面,在using語句里面我們可以創建多個worksheet, ExcelPackage后面可以傳入路徑參數
using (ExcelPackage package=new ExcelPackage(new FileInfo(@"d:\test.xlsx"))){ }
2、創建工作表worksheet
using (ExcelPackage package=new ExcelPackage(new FileInfo(@"d:\test.xlsx"))) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("test");//創建worksheet }
3、保存Excel
using (ExcelPackage package = new ExcelPackage(new FileInfo(@"d:\test.xlsx"))) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("test");//創建worksheet package.Save();//保存excel }
4、添加數據
Epplus中給單元格賦值非常簡單,兩種方法:( ps:Epplus的所有行列數都是以1開始的 )
worksheet.Cells[1, 1].Value = "名稱";//直接指定行列數進行賦值 worksheet.Cells["A1"].Value = "名稱";//直接指定單元格進行賦值
完整的創建一個Excel的例子代碼
FileInfo newFile = new FileInfo(@"d:\test.xlsx"); if (newFile.Exists) { newFile.Delete(); newFile = new FileInfo(@"d:\test.xlsx"); } using (ExcelPackage package = new ExcelPackage(newFile)) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("test"); worksheet.Cells[1, 1].Value = "名稱"; worksheet.Cells[1, 2].Value = "價格"; worksheet.Cells[1, 3].Value = "銷量"; worksheet.Cells[2, 1].Value = "大米"; worksheet.Cells[2, 2].Value = 56; worksheet.Cells[2, 3].Value = 100; worksheet.Cells[3, 1].Value = "玉米"; worksheet.Cells[3, 2].Value = 45; worksheet.Cells[3, 3].Value = 150; worksheet.Cells[4, 1].Value = "小米"; worksheet.Cells[4, 2].Value = 38; worksheet.Cells[4, 3].Value = 130; worksheet.Cells[5, 1].Value = "糯米"; worksheet.Cells[5, 2].Value = 22; worksheet.Cells[5, 3].Value = 200; package.Save(); }
在數據導入Excel中時,如果數據量很大,可能會比較慢。 我覺得可以拆分成幾個Excel表格進行導出(沒有嘗試,只是猜測......)
可以用到的一些創建文件夾的東西
獲取文件夾的物理路徑 HttpContext.Current.Server.MapPath("/文件夾名");
組合完整Excel路徑(也可以用字符串拼接)Path.Combine(Template,"數據導出的表格.xlsx");
其他: String.Replace 替換
File.Copy 復制