NPOI 读取和写入Excel

在C#中使用NPOI库读取和写入Excel文件,你需要先下载并安装NPOI库。你可以在NuGet管理器中搜索NPOI并进行安装。

以下是一个使用NPOI库进行Excel文件读取和写入的示例:

读取Excel文件:

csharp 复制代码
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;

// 打开Excel文件
using (FileStream file = new FileStream("文件路径/文件名.xlsx", FileMode.Open, FileAccess.Read))
{
    IWorkbook workbook = new XSSFWorkbook(file);

    // 选择工作表
    ISheet worksheet = workbook.GetSheet("工作表名称");

    // 读取单元格的值
    IRow row = worksheet.GetRow(0);
    ICell cell = row.GetCell(0);
    string cellValue = cell.StringCellValue;

    // 读取整个工作表的数据
    List<List<string>> data = new List<List<string>>();
    for (int rowIndex = 0; rowIndex <= worksheet.LastRowNum; rowIndex++)
    {
        row = worksheet.GetRow(rowIndex);
        List<string> rowData = new List<string>();
        for (int columnIndex = 0; columnIndex < row.LastCellNum; columnIndex++)
        {
            cell = row.GetCell(columnIndex);
            string value = cell?.StringCellValue ?? "";
            rowData.Add(value);
        }
        data.Add(rowData);
    }
}

写入Excel文件:

csharp 复制代码
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;

// 创建一个新的Excel文件
IWorkbook workbook = new XSSFWorkbook();

// 创建一个工作表
ISheet worksheet = workbook.CreateSheet("工作表名称");

// 写入单元格的值
IRow row = worksheet.CreateRow(0);
ICell cell = row.CreateCell(0);
cell.SetCellValue("Hello World");

// 保存Excel文件
using (FileStream file = new FileStream("文件路径/文件名.xlsx", FileMode.Create, FileAccess.Write))
{
    workbook.Write(file);
}

请注意,在使用NPOI时,记得引入必要的命名空间:NPOI.SS.UserModelNPOI.XSSF.UserModel

相关推荐
赵孝正23 分钟前
自动用 Excel 转 .CSV 为 .xlsx 的原理
excel
互联网上的猪41 分钟前
Excel时间类型函数(包括today、date、eomonth、year、month、day、weekday、weeknum、datedif)
笔记·学习·excel
小码编匠2 小时前
.NET 验证码生成神器基于 SkiaSharp 的高性能方案
后端·c#·.net
专注VB编程开发20年2 小时前
Aspose.words,Aspose.cells,vb.net,c#加载许可证,生成操作选择:嵌入的资源
c#·word·.net·vb.net
破罐子不摔3 小时前
【C#使用S7.NET库读取和写入西门子PLC变量】
java·c#·.net
专注VB编程开发20年4 小时前
无需安装Office进行 Word、Excel操作的微软开发库
microsoft·word·excel
下一秒_待续4 小时前
.Net8项目使用docker、docker-compose部署步骤
docker·容器·.net
hello_simon13 小时前
在线Excel 转换为 txt ,超方便超易用软件,在线转换,大力提升工作效率
excel
Minily15 小时前
35岁程序员的中年求职记:四次碰壁后的深度反思
.net·面试题·35岁危机
吴俊城20 小时前
记一个.NET AOT交叉编译时的坑
.net