NPOI 超簡單的匯出匯入

2022-01-14 23:14:35 字數 1652 閱讀 4574

首先說說,第一次遇到過匿名匯出的那個時候是在我在北京第一家公司,簡單的宣告乙個物件就可以匯出,那時候感覺高大上,自己也想研究研究,但是因為頭將**後來加密了根本看不到。好吧,研究了研究放棄了,後來,因為個人原因離職了。

然後進入了乙個外包公司,有個功能需求是匯入,匯出excel的需求,當時不想複製貼上簡單操作,也因為受到這家公司動態建立實體的**上的理解,也不喜歡同事匯出時先儲存到伺服器的邏輯,便用npoi重寫了乙份幫助類。

因為時間太長了,更換了電腦,當時測試的demo已經沒有了,我分拆出來乙個吧。

實現功能:

注:功能目前只支援單sheet

匯入:支援list和datatable格式,支援資料非空驗證。

匯出:支援list和datatable格式,支援excel格式,支援匿名類list匯出及簡單樣式操作。

定義excel和實體類及datatable的對應列實體,此實體主要是用於幫助定義匯入匯出時的字段對應關係。

及匯入是非空驗證,匯出時配置簡單樣式等。

下圖是主要類結構圖:

excelcolumn是單元格的列定義的實體類;

excelcolumns是列的集合定義列。

excelstream 是防止npoi釋放操作,因為npoi2開始至今response到瀏覽器會出現錯誤,後來發現是因為記憶體釋放導致的。

npoiexelhelper 是匯入匯出的呼叫方法。

兩個匯入節點配置,當然你也可以不用配置,那麼匯入的第一行的單元格直接對應實體類的列或datatable的**。

<?xml version="1.0" encoding="utf-8" ?>

其中ignoreerr是匯入是是否忽略錯誤匯入,一般只是否非空驗證錯誤。

required為此列是否非空驗證。

下面我們就做乙個匯入匯出測試。因為本人不喜歡用datatable,所以datatable方式不做demo。但是實體類裡面支援dt匯入匯出。

首先,宣告實體類:

配置匯入匯出xml:

匯入**:

匯出**:

NPOI匯入匯出資料

datatable匯出excel private static void gridtoexcelbynpoi datatable dt,string strexcelfilename icellstyle cellstyle workbook.createcellstyle 為避免日期格式被exce...

npoi匯入匯出excel

1.匯入 將datatable資料匯入到excel中 要匯入的資料 datatable的列名是否要匯入 要匯入的excel的sheet的名稱 匯入資料行數 包含列名那一行 public int datatabletoexcel datatable data,string sheetname,bool...

Npoi匯入匯出Excel操作

datatable匯出excel private static void gridtoexcelbynpoi datatable dt,string strexcelfilename icellstyle cellstyle workbook.createcellstyle 為避免日期格式被exce...