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); //ICell cell=row.Cells[2];
if(cell==null) cell=row.CreateCell(2);
cell.SetCellValue("内容");
//定义一个文件流对象,将工作簿对象保存为Excel文件
//读取指定单元格内容:string str=cell.StringCellValue;
FileStream fs1 = new FileStream("自定义文件名",FileMode.OpenOrCreate,FileAccess.ReadWrite);
wb.Write(fs1);
fs1.Close(); fs1.Dispose();
以上是关于C#中利用NPOI包操作Excel文件的主要内容,如果未能解决你的问题,请参考以下文章