在 C# 中读取 XLSX 文件

Muhammad Maisam Abbas 2023年12月11日
  1. 使用 C# 中的 LinqToExcel 包读取 XLSX 文件
  2. 使用 C# 中的 ExcelDataReader 包读取 XLSX 文件
在 C# 中读取 XLSX 文件

本教程将讨论在 C# 中读取 Excel xlsx 文件的方法。

使用 C# 中的 LinqToExcel 包读取 XLSX 文件

LinqToExcel 程序包用于通过 C# 中的 LINQ 查询 Excel 文件。它使从 C# 中的 Excel 文件中获取经过过滤的数据变得容易。LinqToExcel 软件包是一个外部软件包,需要首先安装此方法才能起作用。我们可以通过在 NuGet 程序包管理器中搜索 linqtoexcel,使用 NuGet 程序包管理器安装此程序包。我们还需要为 LinqToExcel 软件包安装 Microsoft Access 数据库引擎。最终安装了 LinqToExcel 软件包和 Microsoft Access 数据库引擎时,我们可以读取 xlsx 文件。请参见以下代码示例。

using ExcelDataReader;
using System.IO;
using System.Linq;

namespace read_excel_file {
  class Program {
    static void Main(string[] args) {
      var excelFile = new LinqToExcel.ExcelQueryFactory(@"C:\File\Classes.xlsx");

      var result = from row in excelFile.Worksheet("Sheet1") let item =
          new {
            RollNumber = row["Roll Number"].Cast<string>(),
            Name = row["Name"].Cast<string>(),
            Class = row["Class"].Cast<string>(),
          }
          where item.Class == "5" select item;
    }
  }
}

在上面的代码中,我们使用 LINQ 来查询文件 C:\File\Classes.xlsx,并使用 C# 中的 LinqToExcel 包从 Sheet1 中获取过滤后的内容。我们将查询的结果值保存在 result 变量中。

使用 C# 中的 ExcelDataReader 包读取 XLSX 文件

我们还可以使用 ExcelDataReader从 C# 中的 Excel 文件中读取数据。ExcelDataReader 程序包也是一个外部程序包,并且没有预装有 .NET 框架。我们需要安装它才能使这种方法起作用。我们只需在 NuGet 软件包管理器中搜索 exceldatareader 即可安装此软件包。下面的代码示例向我们展示了如何使用 C# 中的 ExcelDataReader 包从 xlsx 文件读取数据。

using System.Data;
using System.IO;
using System.Linq;

namespace read_excel_file {
  class Program {
    static void Main(string[] args) {
      FileStream fStream = File.Open(@"C:\File\Classes.xlsx", FileMode.Open, FileAccess.Read);
      IExcelDataReader excelDataReader = ExcelReaderFactory.CreateOpenXmlReader(fStream);
      DataSet resultDataSet = excelDataReader.AsDataSet();
      excelDataReader.Close();
    }
  }
}

在上面的代码中,我们使用 C# 中的 ExcelDataReader 包读取 C:\File\Classes.xlsx 文件中的数据。我们将结果数据以表格的形式保存在 resultDataSet 变量内。最后,我们使用 C# 中的 excelDataReader.Close() 函数释放 excelDataReader 实例所拥有的资源。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相关文章 - Csharp Excel