zoukankan      html  css  js  c++  java
  • 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();
    
    }
    

      

  • 相关阅读:
    hdu2988:Dark roads(最小生成树)
    hdu1596:find the safest road(最短路)
    hdu1596:find the safest road(最短路)
    CultureInfo中重要的InvariantCulture
    c#通过反射获取类上的自定义特性
    分享我们项目中基于EF事务机制的架构 【转载】
    ASP.NET MVC3中的路由系统(Routes) .
    为ASP.NET MVC应用添加自定义路由
    Mvc生成页面之t4模板相关
    LINQ to SQL语句对应SQL的实现
  • 原文地址:https://www.cnblogs.com/ancm/p/11106713.html
Copyright © 2011-2022 走看看