C#实现的Excel文件操作类实例

C#实现的Excel文件操作类实例

概述

在C#开发中,操作Excel文件是很常见的需求,为了方便Excel文件的操作,可以自己编写Excel文件操作类。

实现步骤

1. 安装EPPlus插件

EPPlus是一个用于操作Excel文件的库,可以使用NuGet安装。在Visual Studio中打开NuGet包管理器,搜索EPPlus安装即可。

2. 创建Excel操作类

首先,需要创建一个Excel操作类,命名为ExcelHelper。

using OfficeOpenXml;
using System.IO;

public class ExcelHelper
{
    private ExcelPackage package;
    private ExcelWorkbook workbook;
    private ExcelWorksheet worksheet;

    /// <summary>
    /// 读取指定路径的Excel文件,并选择指定的工作表
    /// </summary>
    /// <param name="path">Excel文件路径</param>
    /// <param name="sheetIndex">工作表索引</param>
    public void Open(string path, int sheetIndex)
    {
        var fileInfo = new FileInfo(path);
        package = new ExcelPackage(fileInfo);
        workbook = package.Workbook;
        worksheet = workbook.Worksheets[sheetIndex];
    }

    /// <summary>
    /// 获取指定单元格的值
    /// </summary>
    /// <param name="rowIndex">行索引</param>
    /// <param name="colIndex">列索引</param>
    /// <returns>单元格的值</returns>
    public string GetCellValue(int rowIndex, int colIndex)
    {
        return worksheet.Cells[rowIndex, colIndex].Value.ToString();
    }

    /// <summary>
    /// 获取指定行指定列到最后一列之间的所有值
    /// </summary>
    /// <param name="rowIndex">行索引</param>
    /// <param name="colIndex">起始列索引</param>
    /// <returns>指定行指定列到最后一列之间的所有值</returns>
    public List<string> GetRowValues(int rowIndex, int colIndex)
    {
        var values = new List<string>();
        while (worksheet.Cells[rowIndex, colIndex].Value != null)
        {
            string value = worksheet.Cells[rowIndex, colIndex].Value.ToString();
            values.Add(value);
            colIndex++;
        }
        return values;
    }

    /// <summary>
    /// 关闭Excel文件
    /// </summary>
    public void Close()
    {
        package.Dispose();
    }
}

3. 使用Excel操作类读取Excel文件

可以通过使用ExcelHelper类来读取Excel文件的指定单元格的值,或者获取指定行指定列到最后一列之间的所有值。

下面为示例代码:

var excelHelper = new ExcelHelper();
excelHelper.Open(@"D:\example.xlsx", 1);  //选择Excel文件中第二个工作表
string value = excelHelper.GetCellValue(1, 1);  //读取第一行第一列单元格的值
List<string> rowValues = excelHelper.GetRowValues(1, 1);  //读取第一行第一列到最后一列之间的所有值
excelHelper.Close();

至此,就完成了通过C#实现Excel文件操作类的过程。

示例说明

示例一

在以下示例中,我们将通过ExcelHelper类获取指定Excel文件的第二个工作表中第一行第二个单元格的值,然后在控制台中输出该值。

var excelHelper = new ExcelHelper();
excelHelper.Open(@"D:\example.xlsx", 1);  //选择Excel文件中第二个工作表
string value = excelHelper.GetCellValue(1, 2);  //读取第一行第二列单元格的值
Console.WriteLine(value);  //输出单元格的值
excelHelper.Close();

示例二

在以下示例中,我们将通过ExcelHelper类获取指定Excel文件的第二个工作表中第二行从第二列开始的所有值,然后在控制台中输出这些值。

var excelHelper = new ExcelHelper();
excelHelper.Open(@"D:\example.xlsx", 1);  //选择Excel文件中第二个工作表
List<string> rowValues = excelHelper.GetRowValues(2, 2);
foreach (string value in rowValues)
{
    Console.WriteLine(value);
}
excelHelper.Close();

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现的Excel文件操作类实例 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • SQL数据库实例名称找不到或远程连接失败并显示错误error40的原因及解决办法

    问题描述:如果你在连接SQL数据库时遇到了“SQL数据库实例名称找不到或远程连接失败并显示错误error40”的错误提示,那么就表示你的SQL服务器无法建立与此实例的连接。 原因分析:此问题多数是由以下几个因素造成的: SQL Server服务没有启动或启动了错误的服务名,导致实例名称无法链接; 防火墙阻止了对数据库的连接; SQL Server实例没有启用…

    C# 2023年5月15日
    00
  • c#定时运行程序分享(定时程序)

    下面我会为你详细讲解“C#定时运行程序分享(定时程序)”的完整攻略: 定时运行程序的思路 获取当前时间,判断是否到达指定时间 如果是指定时间,则执行程序 如果不是指定时间,则等待下一次检查 开发步骤 步骤一:添加引用 在Visual Studio的Solution Explorer中,右键单击项目名称,然后选择“添加引用”。 在“添加引用”对话框中,选择“S…

    C# 2023年5月15日
    00
  • C#中获取、生成随机数的三种方法

    获取或生成随机数在编程中是一个比较常见的需求。在 C# 中,我们可以使用以下三种方法来获取或生成随机数: 1. 使用 Random 类 Random 类是 C# 中用来生成随机数的一个内置类。当我们使用该类生成随机数时,需要先实例化一个 Random 对象,然后调用该对象的 Next 方法来生成一个随机整数。Next 方法有以下两种重载形式: int Nex…

    C# 2023年6月7日
    00
  • 详解ASP.NET Core中配置监听URLs的五种方式

    详解ASP.NET Core中配置监听URLs的五种方式 在ASP.NET Core应用程序中,可以通过配置监听URLs来指定应用程序监听的URL地址。本攻略将详细介绍ASP.NET Core中配置监听URLs的五种方式。 方式一:通过appsettings.json文件配置 可以通过在appsettings.json文件中添加以下代码来配置监听URLs: …

    C# 2023年5月16日
    00
  • WPF实现带筛选功能的DataGrid

    接下来我将详细讲解如何使用WPF实现带筛选功能的DataGrid,步骤如下: 步骤一:创建数据源 在WPF项目中,我们需要先创建一个数据源,这个数据源包含我们要显示的数据从哪里来的信息。可以使用C#代码或XAML来创建数据源,例如: public class Person { public string Name { get; set; } public i…

    C# 2023年6月7日
    00
  • C#使用二分查找法判断指定字符的方法

    下面为您详细讲解“C#使用二分查找法判断指定字符的方法”的完整攻略。 什么是二分查找法 二分查找,也称折半查找,是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或小于中间元素,则搜索下一次查找的数组区间为当前数组区间的左半部分或右半部分。依此类推,直到找到要查找的…

    C# 2023年6月7日
    00
  • C#如何取硬件标志

    要获取硬件标志,可以使用ManagementClass类和ManagementObjectSearcher类来访问Windows的WMI(Windows Management Instrumentation)服务。WMI是一个Windows管理架构,它允许开发人员查询和修改计算机系统中的配置信息。 以下是获取硬件标志的完整攻略: 1. 引入命名空间 首先需要…

    C# 2023年6月6日
    00
  • 理解ASP.NET Core 依赖注入(Dependency Injection)

    理解ASP.NET Core 依赖注入(Dependency Injection) ASP.NET Core 依赖注入是一种设计模式,它允许我们将对象的创建和管理从应用程序代码中分离出来。这种分离使得应用程序更加灵活、可测试和可维护。本攻略将详细介绍ASP.NET Core 依赖注入的概念、用法和示例。 什么是依赖注入? 依赖注入是一种设计模式,它允许我们将…

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