NPOI導出Excel
阿新 • • 發佈:2018-05-08
creat 的確 idt main 管理 簡單 rect xls 方式
前段時間研究過微軟的Excel導出、table輸出Excel,而它們也存在一些弊端:
1、對於微軟的Excel導出存在一些弊端,如:需要安裝Office軟件、速度問題;
2、table輸出Excel在使用過程中發現一個致命的弊端,在一定情況下數據會丟失,因為部門的負責人會針對數據進行導出,分發給相關人員,而接收方接收後發現數據損壞。對於數據丟失我猜測應該屬於導出方式,對於table輸出我猜測應該是在本地會生成一些緩存文件以供導出的Excel進行動態調用,而發送給另一臺機器緩存數據卻未發送因此導致數據丟失。
NPOI導出Excel:
對於NPOI的使用的確很是方便,能夠快速的制作出我們需要的導出功能,方法簡單直白沒有其它的依賴性,速度也不錯。
1、使用前需要引用NPOI.dll
可以通過NuGet包管理,檢索NPOI添加到項目中去:
2、使用方法。簡單的使用我們只要註重:HSSFWorkbook、ISheet、IRow和ICell,從名稱可以知道它們的大概用處,我們可以像寫文章一樣的使用它。
HSSFWorkbook相當於一個Excel對象
ISheet相當於Excel裏的工作簿
IRow相當於行
ICell相當於列
1 using System; 2 using System.Collections.Generic;3 using System.IO; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 using NPOI.HSSF.UserModel; 8 using NPOI.SS.UserModel; 9 using Sunc.Framework.Repository.Utility.Excel; 10 11 namespace TestConsole 12 { 13 class Program 14 { 15 static voidMain(string[] args) 16 { 17 18 HSSFWorkbook workBook = new HSSFWorkbook(); 19 ISheet sheet = workBook.CreateSheet("工作簿"); 20 IRow row = sheet.CreateRow(0); 21 ICell cell = row.CreateCell(0); 22 cell.SetCellValue("孫超"); 23 24 MemoryStream ms = new MemoryStream(); 25 workBook.Write(ms); 26 var buf = ms.ToArray(); 27 using (FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "a.xls", FileMode.Create, FileAccess.Write)) 28 { 29 fs.Write(buf, 0, buf.Length); 30 fs.Flush(); 31 } 32 Console.ReadKey(); 33 } 34 35 36 } 37 }
當然SetCellValue屬於一個重載方法,供我們出入各種類型的值
還有樣式的設置
當然需求決定使用,對於微軟的我們可以調用宏,這算是一個比較強大的功能了,但是對於需求不高的我們幾乎使用不到,因此適合自己的才是最好的。
個人源碼
參考手冊:NPOI使用手冊
NPOI導出Excel