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

}
相关文章
相关标签/搜索