当你需要使用C#来操作excel时,Npoi是一个非常好用的库。本文将详细讲解如何使用Npoi操作excel的解决办法,包含Excel的读取和保存。
1. 添加Npoi依赖
首先需要在Visual Studio中添加Npoi的依赖。可以使用NuGet来添加依赖,搜索Npoi并进行安装。
2. 读取Excel
接下来,我们将讲解如何使用Npoi来读取Excel。
2.1 打开Excel文件
首先,我们需要打开Excel文件并获取工作表。可以使用Npoi提供的类HSSFWorkbook
来打开Excel文件,并使用GetSheetAt()
方法获取工作表。示例如下:
using NPOI.HSSF.UserModel;
// 打开Excel文件
HSSFWorkbook workbook = new HSSFWorkbook(File.Open(filename, FileMode.Open, FileAccess.Read));
// 获取工作表
var sheet = workbook.GetSheetAt(0);
2.2 读取单元格
读取单元格可以使用GetRow()
方法来获取行,再使用GetCell()
方法获取单元格。示例如下:
// 获取第一行第一列的单元格
var cell = sheet.GetRow(0).GetCell(0);
// 读取单元格的值
var value = cell.StringCellValue;
2.3 读取整个工作表
读取整个工作表需要使用foreach
循环来获取每一行和每一个单元格。示例如下:
// 遍历所有行
foreach (var row in sheet)
{
// 遍历所有单元格
foreach (var cell in row)
{
// 读取单元格的值
var value = cell.StringCellValue;
}
}
3. 保存Excel
当需要将数据保存到Excel时,我们可以使用Npoi提供的类HSSFWorkbook
和HSSFSheet
。我们可以创建一个新的Excel文件,并将数据写入其中。
3.1 创建新的Excel文件
使用HSSFWorkbook
类创建一个新的Excel文件。示例如下:
// 创建新的工作簿
var workbook = new HSSFWorkbook();
// 创建新的工作表
var sheet = workbook.CreateSheet("Sheet1");
3.2 写入数据
写入数据需要创建行和单元格,然后将数据写入单元格中。创建行和单元格可以使用CreateRow()
和CreateCell()
方法,将数据写入单元格可以使用SetCellValue()
方法。示例如下:
// 获取第一行
var row = sheet.CreateRow(0);
// 创建单元格并写入数据
var cell = row.CreateCell(0);
cell.SetCellValue("Hello,world!");
// 保存数据到文件
using (var file = new FileStream(filename, FileMode.Create, FileAccess.Write))
{
workbook.Write(file);
}
4. 示例
4.1 读取Excel
假设我们有一个名为data.xlsx
的Excel文件,其中包含以下内容:
姓名 | 年龄 |
---|---|
小明 | 20 |
小红 | 19 |
小刚 | 22 |
我们可以使用以下代码读取Excel文件:
using NPOI.HSSF.UserModel;
using System.IO;
var filename = "data.xlsx";
// 打开Excel文件
HSSFWorkbook workbook = new HSSFWorkbook(File.Open(filename, FileMode.Open, FileAccess.Read));
// 获取工作表
var sheet = workbook.GetSheetAt(0);
// 遍历所有行
foreach (var row in sheet)
{
// 遍历所有单元格
foreach (var cell in row)
{
// 读取单元格的值
var value = cell.StringCellValue;
Console.Write($"{value}\t");
}
Console.WriteLine();
}
输出结果如下:
姓名 年龄
小明 20
小红 19
小刚 22
4.2 保存Excel
假设我们有一个数组data
,包含以下数据:
var data = new object[][]
{
new object[] { "姓名", "年龄" },
new object[] { "小明", 20 },
new object[] { "小红", 19 },
new object[] { "小刚", 22 },
};
我们可以使用以下代码将数组保存到Excel文件中:
using NPOI.HSSF.UserModel;
using System.IO;
var filename = "output.xlsx";
// 创建新的工作簿
var workbook = new HSSFWorkbook();
// 创建新的工作表
var sheet = workbook.CreateSheet("Sheet1");
// 写入数据
for (int i = 0; i < data.Length; i++)
{
var row = sheet.CreateRow(i);
for (int j = 0; j < data[i].Length; j++)
{
var cell = row.CreateCell(j);
cell.SetCellValue(data[i][j].ToString());
}
}
// 保存数据到文件
using (var file = new FileStream(filename, FileMode.Create, FileAccess.Write))
{
workbook.Write(file);
}
运行以上代码将会生成一个名为output.xlsx
的Excel文件,其中包含以下内容:
姓名 | 年龄 |
---|---|
小明 | 20 |
小红 | 19 |
小刚 | 22 |
以上就是使用Npoi操作Excel的详细攻略。希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Npoi操作excel的解决办法 - Python技术站