C#中利用NPOI包操作Excel文件

Posted lfq761204

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中利用NPOI包操作Excel文件相关的知识,希望对你有一定的参考价值。

利用NPOI包可以非常方便地创建、修改导出Excel文件。

下载npoi.2.5.2.nupkg及其依赖项

首先需要通过NuGet管理器导入NPOI包,并且在使用前加入如下引用:

using NPOI.SS.UserModel;    //提供ISheet、IRow、ICell等接口
using NPOI.XSSF.UserModel;  //提供相关类操作扩展名为xlsx的2007之后版本Excel文件
using NPOI.HSSF.UserModel;  //提供相关类操作扩展名为xls的2007之前版本Excel文件

完整代码如下

using System;
using System.IO;            //提供文件流文件和文件流操作所需类
using NPOI.SS.UserModel;    //提供ISheet、IRow、ICell等接口
using NPOI.XSSF.UserModel;  //提供相关类操作扩展名为xlsx的2007之后版本Excel文件

namespace MyExcel 
    class MyExcel 
        //创建一个新Excel文件并导出
        public void CreateExcel() 
            //创建一个工作簿对象
            XSSFWorkbook wb = new XSSFWorkbook();
            //插入指定名称的工作表
            ISheet sheet = wb.CreateSheet("mysheet");
            //插入指定行,在此行对象上创建单元格,并写入内容
            IRow row = sheet.CreateRow(2);  //参数为工作表的行号
            for(int i = 0;i<5;i++) 
                ICell cell = row.CreateCell(i);
                cell.SetCellValue(i);
            
            //定义一个文件流对象,将工作簿对象保存为Excel文件
            FileStream fs = new FileStream("自定义文件名",FileMode.OpenOrCreate,FileAccess.ReadWrite);
            wb.Write(fs);
            fs.Close(); fs.Dispose();
        
        //打开已有Excel文件,修改内容后再导出
        public void OpenExcel() 
            FileStream fs = new FileStream("自定义文件名",FileMode.Open,FileAccess.Read);
            //创建工作簿对象
            XSSFWorkbook wb = new XSSFWorkbook(fs);
            fs.Close(); fs.Dispose();
            //根据工作表名获取工作簿对象,也可通过索引获取工作表wb.GetSheetAt(int index)
            ISheet sheet = wb.GetSheet("mysheet");
            //更改指定单元格内容,如果该单元格为null则会引发异常,需要对指定行和单元格进行判断
            //sheet.GetRow(3).Cells[2].SetCellValue("内容");    //假设修改内容的单元格不为null可以这样修改内容
            IRow row = sheet.GetRow(3);
            if(row==null) row=sheet.CreateRow(3);
            ICell cell = row.GetCell(2);
            if(cell==null) cell=row.CreateCell(2);
            cell.SetCellValue("内容");
            //定义一个文件流对象,将工作簿对象保存为Excel文件
            FileStream fs1 = new FileStream("自定义文件名",FileMode.OpenOrCreate,FileAccess.ReadWrite);
            wb.Write(fs1);
            fs1.Close(); fs1.Dispose();
        
    

以上是关于C#中利用NPOI包操作Excel文件的主要内容,如果未能解决你的问题,请参考以下文章

C#中利用NPOI包操作Excel文件

C#中利用NPOI包操作Word文件

C#中利用NPOI包操作Word文件

C#中利用NPOI包操作Word文件

C#中利用NPOI包操作Word文件

C#使用NPOI导出Excel文件