Npoi 的使用


npoi這個office寫入,我個人有點不方便,但是因為需要使用所以不得不去用了。

原因:

1、 沒文檔

2、 網上的案例版本不同

3、 對於復雜列不好做處理

 

跟網上其他工具的對比,好處就是不需要依賴Microsoft的office一套組件就可以對excel進行寫入和讀取。

 

第一個核心就是IWorkbook對象

通過它可以操作兩種格式的excel,一種是*.xls(HSSFWorkbook),一種是*.xlsx(XSSFWorkbook)

IWorkbook wk = new HSSFWorkbook();

IWorkbook wk = new XSSFWorkbook();

  

第二個的核心就是Isheet對象

通過它可以操作兩種格式的excel的工作簿,一種是*.xls(HSSFSheet),一種是*.xlsx(XSSFSheet)

ISheet sheet = wk.CreateSheet(“”);

或者是獲取已有的工作簿

ISheet sheet = wk.GetSheetAt(int indx)

Isheet對象主要負責excel的工作簿

 

第三個核心就是Irow/Icell對象

IRow對象可以實現對列的控制

ICell對象可以實現對行單元格的控制

IRow需要通過工作簿進行新增

IRow row = sheet.CreateRow(int indx);

ICell需要通過IRow明確列的位置才能對行的單元格進行設置,單元格只能通過IRow來創建

ICell cell = row.CreateCell(int indx);

三個核心能夠對excel進行基本的寫入的操作

案例:

IWorkbook wk = null;

ISheet sheet = null;

//獲取文件格式

string extension = Path.GetExtension(filePath);

//根據不同版本的excel格式獲取不同的寫入對象

if (extension.Equals(".xls"))

{

    wk = new HSSFWorkbook();

}

else

{

    wk = new XSSFWorkbook();

}

//創建Excel工作簿

sheet = wk.CreateSheet("new sheet");

//創建指定列

IRow row = sheet.CreateRow(int indx)

//創建指定行

ICell cell = row.CreateCell(int indx)

 

//將制作好的excel生成到系統上

MemoryStream ms = new MemoryStream();

wk.Write(ms);

using(varfs=newFileStream(filePath,FileMode.Create,FileAccess.Write,FileShare.None,4096,true))

{

    byte[] b = ms.ToArray();

    await fs.WriteAsync(b, 0, b.Length);

    ms.Close();

    fs.Flush();

    fs.Close();

}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM