Npoi 的使用

npoi這個office寫入,我我的有點不方便,可是由於須要使用因此不得不去用了。工具

緣由:excel

一、 沒文檔code

二、 網上的案例版本不一樣對象

三、 對於複雜列很差作處理blog

 

跟網上其餘工具的對比,好處就是不須要依賴Microsoft的office一套組件就能夠對excel進行寫入和讀取。文檔

 

第一個核心就是IWorkbook對象string

經過它能夠操做兩種格式的excel,一種是*.xls(HSSFWorkbook),一種是*.xlsx(XSSFWorkbook)it

IWorkbook wk = new HSSFWorkbook();

IWorkbook wk = new XSSFWorkbook();

  

第二個的核心就是Isheet對象io

經過它能夠操做兩種格式的excel的工做簿,一種是*.xls(HSSFSheet),一種是*.xlsx(XSSFSheet)class

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();

}
相關文章
相關標籤/搜索