使用 C# 读取 Excel 文件中的数据

MS Excel 文件广泛用于以行和列的形式存储数据。在各种情况下,大型数据集也保存在 Excel 文件中。通常,您必须读取 Excel 文件并从 .NET 应用程序中获取数据。为了通过几个简单的步骤实现这一点,本文展示了如何在 C# 中读取 Excel 文件。特别是,它涵盖了如何从整个 Excel 文件或仅单个工作表中读取数据。

用于读取 Excel 文件的 C# 库 - 免费下载

要从工作表中读取数据,我们将使用 Aspose.Cells for .NET。它是一个功能强大且功能丰富的 API,用于创建和操作 Excel 文件。此外,它允许您非常轻松地阅读 Excel 文件。 API 可以从 下载部分 下载或通过 NuGet 安装。

PM> Install-Package Aspose.Cells

在 C# 中读取 Excel 文件

在 Excel 文件中,数据存储在单元格中,其中每个单元格由其名称(A1、B3 等)或行和列索引标识。单元格的集合构成一个工作表,一个 Excel 文件可能包含单个或多个工作表。最后,所有工作表共同形成一个工作簿。 Aspose.Cells for .NET 使用相同的命名约定来操作 Excel 文件。

以下是在 C# 中读取 Excel 文件和获取数据的步骤。

  • 使用 Workbook 类加载 Excel 文件。
  • 创建 WorksheetCollection 类的对象并使用 Workbook.Worksheets 获取工作表的引用。
  • 启动一个循环以遍历集合中的所有工作表,并在每次迭代中执行以下步骤:
    • Worksheet 对象中获取工作表的引用。
    • 获取工作表中数据行和列的计数。
    • 为行启动一个循环。
    • 为列启动嵌套循环。
    • 使用 Worksheet.Cells[i, j].Value 属性从每个单元格中读取数据。

以下代码示例显示了如何在 C# 中读取 Excel 文件。

// 加载 Excel 文件
Workbook wb = new Workbook("excel.xlsx");

// 获取所有工作表
WorksheetCollection collection = wb.Worksheets;

// 循环遍历所有工作表
for (int worksheetIndex = 0; worksheetIndex < collection.Count; worksheetIndex++)
{

    // 使用其索引获取工作表
    Worksheet worksheet = collection[worksheetIndex];

    // 打印工作表名称
    Console.WriteLine("Worksheet: " + worksheet.Name);

    // 获取行数和列数
    int rows = worksheet.Cells.MaxDataRow;
    int cols = worksheet.Cells.MaxDataColumn;

    // 循环遍历行
   for (int i = 0; i < rows; i++)
    {

        // 循环遍历选定行中的每一列
       for (int j = 0; j < cols; j++)
        {
            // 打印单元格值
            Console.Write(worksheet.Cells[i, j].Value + " | ");
        }
        // 打印换行符
        Console.WriteLine(" ");
    }
}

以下是我们在运行上面的代码示例后在控制台中得到的输出。

在 C# 中读取 Excel 文件工作表中的数据

在 C# 中读取 Excel 文件

C# 读取特定的 Excel 工作表

您还可以按照以下步骤仅读取 Excel 文件中的特定工作表。

以下代码示例展示了如何从 C# 中的特定工作表中读取数据。

// 加载 Excel 文件
Workbook wb = new Workbook("excel.xlsx");

// 使用其索引获取工作表
Worksheet worksheet = wb.Worksheets[0];

// 打印工作表名称
Console.WriteLine("Worksheet: " + worksheet.Name);

// 获取行数和列数
int rows = worksheet.Cells.MaxDataRow;
int cols = worksheet.Cells.MaxDataColumn;

// 循环遍历行
for (int i = 0; i < rows; i++)
{
    // 循环遍历选定行中的每一列
   for (int j = 0; j < cols; j++)
    {
        // 打印单元格值
        Console.Write(worksheet.Cells[i, j].Value + " | ");
    }
    // 打印换行符
    Console.WriteLine(" ");
}

C# Excel Reader API - 获取免费许可证

您可以通过获得 免费临时许可证 来使用 Aspose.Cells for .NET,而不受评估限制。

结论

在本文中,您学习了如何在 C# 中以编程方式读取 Excel 文件。在代码示例的帮助下,您已经了解了如何从特定工作表或 Excel 工作簿中的所有工作表中读取数据。此外,您可以使用 文档 探索 Aspose.Cells for .NET 的其他功能。如果您有任何疑问,请随时通过我们的 论坛 告诉我们。

也可以看看