.net6简单使用NPOI读取Excel的项目实践

对于".net6简单使用NPOI读取Excel的项目实践",我们可以提供以下完整攻略:

1. 准备工作

在进行Excel读取操作之前,我们需要先安装NPOI包。可以通过NuGet Package Manager或者手动下载NuGet包的方式进行安装。安装完成后,我们需要引入以下命名空间:

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;

这里使用的XSSF对象是针对Excel的2007版及以上文档(.xlsx)。

2. 读取Excel文件

下面是一个读取Excel文件的示例:

string fileName = "FilePath";  // 文件路径
FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);

XSSFWorkbook workbook = new XSSFWorkbook(fs);  // 创建工作簿
ISheet sheet = workbook.GetSheet("Sheet1");   // 获取Sheet1工作表

for (int i = sheet.FirstRowNum; i <= sheet.LastRowNum; i++)  // 遍历所有行
{
    IRow row = sheet.GetRow(i);
    if (row != null)
    {
        for (int j = row.FirstCellNum; j < row.LastCellNum; j++)  // 遍历每一行中的每一列
        {
            ICell cell = row.GetCell(j);
            if (cell != null)
            {
                // 处理Excel表格中的内容
            }
        }
    }
}

fs.Close();  // 关闭文件流

在示例中,通过FileMode.OpenFileAccess.Read打开Excel文件,创建XSSFWorkbook对象表示Excel工作簿,通过GetSheet()方法获取指定工作表,然后使用双重循环遍历每个单元格并处理其中的内容。

3. 写入Excel文件

下面是一个将数据写入Excel的示例:

string fileName = "FilePath";  // 文件路径
XSSFWorkbook workbook = new XSSFWorkbook();  // 创建工作簿
ISheet sheet = workbook.CreateSheet("Sheet1");  // 创建Sheet1工作表

IRow row = sheet.CreateRow(0);  // 创建首行
row.CreateCell(0).SetCellValue("Column1");  // 创建表头Column1
row.CreateCell(1).SetCellValue("Column2");  // 创建表头Column2

for (int i = 1; i <= 10; i++)  // 写入10行数据
{
    IRow dataRow = sheet.CreateRow(i);  // 创建行
    dataRow.CreateCell(0).SetCellValue("Data" + i);  // 创建数据列1
    dataRow.CreateCell(1).SetCellValue(i);  // 创建数据列2
}

FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);  // 创建文件流
workbook.Write(fs);  // 写入Excel
fs.Close();  // 关闭文件流

在示例中,通过CreateSheet()方法创建Sheet1工作表,CreateRow()方法创建首行表头和后续数据行,CreateCell().SetCellValue()方法创建单元格并设置值。最后,创建文件流并使用Write()方法将Excel写入文件中。

这就是".net6简单使用NPOI读取Excel的项目实践"的完整攻略,希望能够对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:.net6简单使用NPOI读取Excel的项目实践 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • C#之字符串截取–Regex.Match使用

    C#之字符串截取–Regex.Match使用 在C#中,字符串截取是一项常见操作。Regex.Match()方法提供了一种强大的方式来根据正则表达式截取和匹配字符串。本文将介绍Regex.Match()方法的使用方法,包括声明、基本语法和两条示例说明。 声明 public static System.Text.RegularExpressions.Matc…

    C# 2023年6月6日
    00
  • C#多线程之Thread类详解

    欢迎来到本站,以下是C#多线程之Thread类详解的完整攻略。 简介 Thread类是C#中用于创建和管理线程的核心组件之一。它允许我们将应用程序的执行流横跨多个操作系统线程,并使多任务处理变得更加简单。Thread类是一个原始的线程类,因此,使用它时需要更多的操作和注意事项,但这也意味着我们可以在底层更精细地控制线程的行为。 创建Thread线程 使用Th…

    C# 2023年5月15日
    00
  • C#十六进制字符串转十进制int的方法

    我们来讲解“C#十六进制字符串转十进制int的方法”的攻略。 文字说明 要将一个十六进制字符串转换成十进制int数值,在C#中可以使用Convert.ToInt32方法。该方法有两个参数:第一个参数是十六进制字符串,第二个参数是用于指定转换进制的整数值,常用进制参数是16。 下面我们来看一下具体的代码实现: string hexStr = "1AC…

    C# 2023年6月8日
    00
  • C#枚举的高级应用

    接下来我将为你讲解C#枚举的高级应用。 1. 枚举的定义 在C#中,枚举本质上是一种值类型,它为一组相关的常量定义了一个公共类型别名。枚举使用关键字enum定义,通常被用来表示有限集合的值,如颜色(ILenum)、星期几、月份等。 下面是一段枚举的定义示例代码: enum Directions { North, South, East, West } 上述代…

    C# 2023年5月15日
    00
  • EF Core从TPH迁移到TPT

    Intro EF Core支持多种方式处理具有继承关系的表,现在支持TPH、TPC(EF Core 7)、TPT,具体的实现方式可以参考官方文档和这篇文章。 大致总结一下不同的方式的区别:TPH:所有的类型都放在一张表中,使用discriminator字段用以区别不同的类型TPT:不同的子类型有单独的表存放子类独有的字段,父虚类型也有一张单独的表存放共有的字…

    C# 2023年4月18日
    00
  • C#利用Task实现任务超时多任务一起执行的方法

    下面我将为你详细讲解“C#利用Task实现任务超时多任务一起执行的方法”的完整攻略。 1. 使用Task.WaitAny方法实现超时控制 在C#中,使用Task可以很方便地实现多任务并行执行,但是如果需要控制任务的执行时间,避免超时等问题,则需要使用Task.WaitAny方法。具体步骤如下: 步骤1:启动多个任务 首先,我们需要启动多个任务,让它们并行执行…

    C# 2023年6月6日
    00
  • C#判断一个类是否实现了某个接口3种实现方法

    好的。判断一个类是否实现了某个接口可以使用以下三种方法: 方法1:利用C#中的 is 关键字判断 可通过使用 C# 中的 is 关键字 判断一个类是否实现了某个接口。下面是示例代码: using System; interface IFlyable { void Fly(); } class Bird : IFlyable { public void Fly…

    C# 2023年6月7日
    00
  • ASP.NET Mvc开发之EF延迟加载

    ASP.NET Mvc是一个广泛应用于Web应用程序开发的框架,其通过使用模型-视图-控制器(MVC)设计模式来促进代码的组织、维护和测试。而在ASP.NET Mvc应用程序的开发中,数据库访问和数据操作是非常重要的一部分,其中基于Entity Framework(EF)的数据操作是最常用的方式之一。 本攻略将详细讲解在ASP.NET Mvc开发中使用EF延…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部