NPOI的基本使用
2019-04-17 本文已影响6人
张中华
在NPOI初识中简了解了下NPOI的简介和优势,接下来看一下如果下载使用。新建一个小的Demo,如下:
第一步,新建一个控制台应用程序:
第二步,利用Nuget获取NPOI, 这里引用的2.4.1最稳定版本:
OR
Install-Package NPOI
引用添加完成后,我们可以看到主要添加了四个dll的引用,在简介中,也介绍了四种dll的用途。
通过这几个dll,可以看出,NPOI的用途还是挺多的。
那么, 接下来创建一个demo,实现一下简单的对excel的增、删、改、查功能。在此之前,在项目文件下创建一个NPOIDemo.xlsx
第三步,简单使用增,删,改,查:
初始文件:
代码执行过程中数据记录:
执行结果:
Code:
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NPOIDemo
{
class Program
{
static void Main(string[] args)
{
string path = AppDomain.CurrentDomain.BaseDirectory + "NPOIDemo.xlsx";
IWorkbook workbook = null;
try
{
using (var fs = new FileStream(path, FileMode.Open, FileAccess.ReadWrite))
{
// 实例化
if (path.IndexOf(".xlsx") > 0) // 2007
workbook = new XSSFWorkbook(fs);
else if (path.IndexOf(".xls") > 0) // 2003
workbook = new HSSFWorkbook(fs);
// 查询
if (workbook != null)
{
ISheet sheet = workbook.GetSheetAt(0);
for (int i = 0; i < 10; i++) // 遍历每一个行,然后读取第一个单元格的内容
{
if (sheet.GetRow(i) == null || sheet.GetRow(i).GetCell(0) == null) continue;
Console.WriteLine(sheet.GetRow(i).GetCell(0).StringCellValue);
}
}
}
//把这个HSSFWorkbook实例写入文件
// 增加sheet
workbook.CreateSheet("SheetZZH");
FileStream file = new FileStream(path, FileMode.OpenOrCreate,FileAccess.ReadWrite);
var sheet2 = workbook.GetSheet("SheetZZH");
sheet2.CreateRow(0).CreateCell(0, CellType.String).SetCellValue("Sheet2Value1"); // 新增
sheet2.GetRow(0).CreateCell(1, CellType.String).SetCellValue("Sheet2Value2"); // 新增
sheet2.GetRow(0).CreateCell(2, CellType.String).SetCellValue("Sheet2Value3"); // 新增
workbook.Write(file);
file.Close();
using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Write))
{
var value = sheet2.GetRow(0).GetCell(1).StringCellValue;
Console.WriteLine("shee2 row 0 cell 1 is " + value);
sheet2.GetRow(0).GetCell(1).SetCellValue("Sheet2Value2.2"); // 修改
sheet2.GetRow(0).RemoveCell(sheet2.GetRow(0).GetCell(2)); // 删除
workbook.Write(fs);
fs.Close();
}
}
catch (Exception ex)
{
throw ex;
}
Console.WriteLine("Complete");
Console.ReadLine();
}
}
}
更多功能的使用,可参照该网址进行学习:NPOI使用手册