1. 程式人生 > 其它 >.NET NPOI匯出Excel

.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開始     

    //建立列
    var
cell = 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表格了,如果有哪裡說的不仔細,請留言告訴小編,小編只要不是特別忙就會回覆。

嘿嘿!首次分享。如果有哪裡的說的不對的地方,請大佬們留言指正一下,萬分感謝。

路漫漫其修遠兮,吾將上下而求索。

加油!