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

      

  • 相关阅读:
    .Net时间计算函数,统计某一天是一年的第几周,这一周从哪天开始到哪天结束
    1分钟搞定超慢SQL
    网站
    舞台
    相见欢
    一套完整系统对人生的意义
    2015/08/15心情
    Linux下压缩某个文件夹(文件夹打包)
    init进程 && 解析Android启动脚本init.rc && 修改它使不启动android && init.rc中启动一个sh文件
    andriod系统裁剪心得
  • 原文地址:https://www.cnblogs.com/ancm/p/11106713.html
Copyright © 2011-2022 走看看