前言


在NPOI初识中简了解了下NPOI的简介和优势,接下来看一下如果下载使用。


新建控制台应用程序

新建程序


利用Nuget获取NPOI


这里引用的2.4.1最稳定版本:
新建程序

NPOI引用添加完成后,可以看到主要添加了四个dll的引用

引用

在简介中,也介绍了四种dll的用途。

用途

通过这几个dll,可以看出,NPOI的用途还是挺多的。

用途


简单使用增删改查


接下来实现一下简单的对excel的增、删、改、查功能。在项目文件下创建一个NPOIDemo.xlsx

demo

初始文件:

初始文件

代码执行过程中数据记录:

代码

执行结果:

执行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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使用手册




版权声明:本文为简书博主「张中华」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://www.jianshu.com/p/2c240a47bbe3