.NET NPOI匯出Excel
什麼是NPOI?
NPOI的由來其實是根據JAVA的POI演化而來的,有人就要問了那為什麼叫NPOI呢?首先 “N” 代表的是 .NET,POI不用說就是根據JAVA的POI演化而來。
NPOI官網地址:http://npoi.codeplex.com/
相比於微軟自帶的匯出匯入技術,小編個人認為還是NPOI好用一點。NPOI缺點在哪呢?小編認為主要在Word文件這方面,相比於Excel,NPOI匯出Word文件就不是那麼“適用”了;
好!廢話就不說那麼多了,直接上乾貨。
NPOI匯出Excel文件?
1、建立一個格式,比如:Excel格式、Word文件格式
//建立Excel類var workbook = new HSSFWorkbook();
2、建立一個單元
//建立表 var table = workbook.CreateSheet("事業支出表");
3、建立首行 說明:NPOI不能建立首列,只能建立首行,除非一行一行建立,建立完成後給第一個表格賦值
//建立第一行 var row0 = table.CreateRow(0);
4、給第一行賦值 要想給行賦值,那麼必須建立列
①:建立列 說明:i:代表建立多少那一列 ,行以及列都是用0開始
//建立列 varcell = row0.CreateCell(i);
②:給每一列賦值 說明:在這裡cell是同上的,上面建立的列名稱是什麼,想要給這一列賦值,名稱就必須一樣
//賦值 cell.SetCellValue("值");
5、樣式
①:合併單元格 說明:這裡小編只能一個行行一列列進行合併單元格,小編不知道有沒有什麼簡單方式。如果有:請大佬留言告訴我,萬分感謝
//第一個數字:代表從哪一行開始;第二個數字:是到哪一行結束;第三個數字:從哪一列開始;第四個數字:到哪一列結束
table.AddMergedRegion(new CellRangeAddress(0, 1, 0, 0)); table.AddMergedRegion(new CellRangeAddress(0, 1, 1, 1)); table.AddMergedRegion(new CellRangeAddress(0, 1, 2, 2)); table.AddMergedRegion(new CellRangeAddress(0, 1, 3, 3)); table.AddMergedRegion(new CellRangeAddress(0, 1, 4, 4)); table.AddMergedRegion(new CellRangeAddress(0, 1, 5, 5)); table.AddMergedRegion(new CellRangeAddress(0, 1, 6, 6)); table.AddMergedRegion(new CellRangeAddress(0, 1, 13, 13)); table.AddMergedRegion(new CellRangeAddress(0, 1, 20, 20)); table.AddMergedRegion(new CellRangeAddress(0, 1, 21, 21)); table.AddMergedRegion(new CellRangeAddress(0, 0, 7, 12)); table.AddMergedRegion(new CellRangeAddress(0, 0, 14, 19));
②:建立樣式 說明:樣式生命的時候必須是跟你建立的那個Excel格式名稱相同的
//建立樣式
ICellStyle style = workbook.CreateCellStyle();
//建立字型
HSSFFont cellStyleFont = (HSSFFont)workbook.CreateFont();
cellStyleFont.Boldweight = 800; //字型加粗
style.SetFont(cellStyleFont); //將字型繫結到樣式
//設定單元格的樣式:水平居中
style.Alignment = HorizontalAlignment.Center;
//設定單元格的樣式:垂直居中
style.VerticalAlignment = VerticalAlignment.Center;
//給列賦值上樣式
cell.CellStyle = style;
③:匯出檔案
//儲存檔案
string strFilePath = "";
string strGuid = Guid.NewGuid().ToString();//生成唯一標識 string FilePath = "路徑";//建立資料夾 Directory.CreateDirectory(strFilePath); string Time = DateTime.Now.ToString("yyyyMMddHHmmss");
//生成唯一的資料夾以及檔名稱,防止放在一個衝突 using (var fs = File.OpenWrite($@"{strFilePath}\事業部收支表{Time}.xls")) { //寫入檔案 workbook.Write(fs); }
以上就是NPOI的匯出Excel表格了,如果有哪裡說的不仔細,請留言告訴小編,小編只要不是特別忙就會回覆。
嘿嘿!首次分享。如果有哪裡的說的不對的地方,請大佬們留言指正一下,萬分感謝。
路漫漫其修遠兮,吾將上下而求索。
加油!