C#使用Spire.XLS读取Excel数据的代码示例

 更新时间:2025年09月23日 09:00:12   作者:LSTM97  
在现代企业应用中,Excel文件扮演着至关重要的角色,无论是数据导入、报表生成、还是数据分析,都离不开对Excel数据的处理,对于C#开发者而言,如何高效、稳定地在应用程序中C#读取Excel内容,常常是一个需要面对的挑战,本文介绍了C#如何使用Spire.XLS读取Excel数据

引言

在现代企业应用中,Excel 文件扮演着至关重要的角色,无论是数据导入、报表生成、还是数据分析,都离不开对 Excel 数据的处理。对于 C# 开发者而言,如何高效、稳定地在应用程序中 C# 读取 Excel 内容,常常是一个需要面对的挑战。传统方法可能需要依赖 Microsoft Office 的 COM 组件,这不仅增加了部署的复杂性,还可能面临兼容性和性能问题。

本文将为您介绍一个强大而专业的 .NET 组件——Spire.XLS for .NET,它能够帮助您摆脱这些困扰,轻松实现 C# 读取 Excel 的需求。我们将详细讲解如何利用 Spire.XLS for .NET 库,以清晰、可操作的步骤和代码示例,读取 Excel 工作表中的全部内容。

1. Spire.XLS for .NET 快速入门

Spire.XLS for .NET 是一款由 E-iceblue 公司开发的专业 Excel 处理组件,它允许开发者在 .NET 应用程序中创建、读取、写入、转换和打印 Excel 文件,而无需安装 Microsoft Office。其主要优势包括:

  • 无需 Office 环境: 独立运行,不依赖 Office 软件,简化部署。
  • 高性能: 针对大数据量处理进行了优化,读写速度快。
  • 功能全面: 支持各种 Excel 特性,如单元格样式、公式、图表、批注等。
  • 兼容性强: 支持 .NET Core, .NET Standard, .NET 5+ 以及传统的 .NET Framework。

安装与引用

使用 Spire.XLS for .NET 非常简单,您可以通过 NuGet 包管理器将其添加到您的 C# 项目中。

  1. 打开 Visual Studio,在您的项目中右键点击“引用”或“依赖项”,选择“管理 NuGet 包”。
  2. 在“浏览”选项卡中搜索 Spire.XLS。
  3. 选择 Spire.XLS 包并点击“安装”。

您也可以在 NuGet 包管理器控制台中运行以下命令进行安装:

Install-Package Spire.XLS

安装完成后,您就可以在代码中引用 命名空间,开始您的 Excel 操作 C# 之旅了。

2. 读取整个工作表内容的核心步骤与代码

现在,让我们通过一个具体的代码示例,演示如何使用 Spire.XLS for .NET 读取 Excel 文件中第一个工作表的所有数据。

步骤分解

  1. 加载 Excel 文件: 使用 Workbook 对象加载目标 Excel 文件。
  2. 获取工作表: 通过 Workbook.Worksheets 集合获取需要读取的工作表。
  3. 遍历行和列: 迭代工作表中的行和列,访问每个单元格。
  4. 获取单元格数据: 提取每个单元格的值。

代码示例

假设我们有一个名为 Sample.xlsx 的 Excel 文件,其中包含一些数据。以下代码将读取该文件的第一个工作表,并将所有单元格的内容打印到控制台。

using System;
using Spire.Xls; // 引入 Spire.Xls 命名空间

namespace ReadExcelDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 创建一个 Workbook 实例并加载 Excel 文件
            // 请确保 'Sample.xlsx' 文件存在于应用程序运行目录下,或提供完整路径
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("Sample.xlsx");

            // 2. 获取第一个工作表(索引从0开始)
            Worksheet sheet = workbook.Worksheets[0];

            Console.WriteLine($"正在读取工作表: {sheet.Name}");
            Console.WriteLine("-----------------------------------");

            // 3. 遍历工作表中的所有行和列
            // sheet.LastRow 和 sheet.LastColumn 获取工作表中包含数据的最后一行和最后一列的索引
            for (int row = 1; row <= sheet.LastRow; row++) // 行索引通常从1开始
            {
                for (int col = 1; col <= sheet.LastColumn; col++) // 列索引通常从1开始
                {
                    // 4. 获取单元格对象并提取其值
                    // sheet.Range[row, col] 可以获取指定行和列的单元格
                    CellRange cell = sheet.Range[row, col];
                    
                    // cell.Value 属性用于获取单元格的原始值,可以根据需要进行类型转换
                    // cell.Text 属性用于获取单元格的显示文本(格式化后的字符串)
                    Console.Write($"{cell.Text}\t"); 
                }
                Console.WriteLine(); // 每读取完一行,换行
            }

            Console.WriteLine("-----------------------------------");
            Console.WriteLine("Excel 内容读取完毕!");

            // 释放资源
            workbook.Dispose();
            Console.ReadKey();
        }
    }
}

关键方法/属性解释:

  • Workbook: 代表一个 Excel 工作簿文件。
  • Workbook.LoadFromFile(string filePath): 用于从指定路径加载 Excel 文件。
  • Workbook.Worksheets: 一个集合,包含工作簿中的所有 Worksheet 对象。
  • Worksheet: 代表一个 Excel 工作表。
  • Worksheet.LastRow: 获取工作表中包含数据的最后一行的索引。
  • Worksheet.LastColumn: 获取工作表中包含数据的最后一列的索引。
  • Worksheet.Range[int row, int column]: 通过行和列索引获取 CellRange 对象。
  • CellRange.Text: 获取单元格格式化后的显示文本。
  • CellRange.Value: 获取单元格的原始值,可以是字符串、数字、日期等。

通过以上代码,您已经掌握了 C# 解析 Excel 的基本方法,能够高效地获取 Excel 工作表中的所有数据。

3. 常见读取场景与进阶提示

除了遍历整个工作表,Spire.XLS for .NET 还提供了更灵活的读取方式:

获取特定单元格/区域数据:

  • 获取 A1 单元格的值:string value = sheet.Range["A1"].Text;
  • 获取 B2 单元格的数值:double number = sheet.Range["B2"].NumberValue;
  • 获取特定区域的数据:CellRange range = sheet.Range["A1:C5"]; 然后可以遍历 range 中的单元格。

处理不同数据类型:

  • Spire.XLS for .NET 会尝试自动识别单元格的数据类型。您可以使用 CellRange.Value 获取原始值,然后根据需要进行类型转换,或者使用 CellRange.NumberValue、CellRange.DateTimeValue 等属性直接获取特定类型的值。

错误处理建议:

  • 在实际应用中,务必添加异常处理机制,例如使用 try-catch 块来捕获文件不存在、文件损坏或权限不足等问题,增强程序的健壮性。

性能优化提示:

  • 对于包含数十万行甚至更多数据的大型 Excel 文件,可以考虑分批次读取数据,或者利用 Spire.XLS for .NET 提供的更高级的数据导入导出功能,例如直接将数据导入到 DataTable 中,以提高效率。

总结

本文详细介绍了如何利用强大的 Spire.XLS 库在 C# 应用程序中轻松读取 Excel 内容。从安装配置到核心代码示例,我们展示了其简洁易用的 API 和强大的功能。无论是数据导入、报表处理还是数据分析,Spire.XLS for .NET 都能为您提供高效、稳定的解决方案,帮助您摆脱传统方式的困扰。

以上就是C#使用Spire.XLS读取Excel数据的代码示例的详细内容,更多关于C# Spire.XLS读取Excel数据的资料请关注脚本之家其它相关文章!

相关文章

  • 探讨:如何使用委托,匿名方法对集合进行万能排序

    探讨:如何使用委托,匿名方法对集合进行万能排序

    本篇文章是对使用委托,匿名方法对集合进行万能排序进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • c# 实现的支付宝支付

    c# 实现的支付宝支付

    这篇文章主要介绍了c# 实现的支付宝支付的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01
  • C# goto语句的具体使用

    C# goto语句的具体使用

    # goto 语句用于直接在一个程序中转到程序中的标签指定的位置,标签实际上由标识符加上冒号构成。本文主要介绍了C# goto语句的具体使用,感兴趣的可以了解一下
    2021-06-06
  • c# 通过代码开启或关闭防火墙

    c# 通过代码开启或关闭防火墙

    这篇文章主要介绍了c# 通过代码开启或关闭防火墙的示例,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-10-10
  • C#动态创建button按钮的方法实例详解

    C#动态创建button按钮的方法实例详解

    这篇文章主要介绍了C#动态创建button按钮的方法实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • C#中Winform 实现Ajax效果自定义按钮

    C#中Winform 实现Ajax效果自定义按钮

    这篇文章主要介绍了C#中Winform 实现Ajax效果自定义按钮的相关资料,需要的朋友可以参考下
    2017-12-12
  • C#操作ini文件的帮助类

    C#操作ini文件的帮助类

    这篇文章介绍了C#操作ini文件的帮助类,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#确保只有一个实例在运行的方法

    C#确保只有一个实例在运行的方法

    这篇文章主要介绍了C#确保只有一个实例在运行的方法,涉及C#进程操作的相关技巧,需要的朋友可以参考下
    2015-05-05
  • C#实现的中国移动官网手机号码采集器

    C#实现的中国移动官网手机号码采集器

    这篇文章主要介绍了C#实现的中国移动官网手机号码采集器,本文先是采集号码入库,同时给出了筛选各类靓号的SQL语句,需要的朋友可以参考下
    2014-10-10
  • C#如何通过匿名类直接使用访问JSON数据详解

    C#如何通过匿名类直接使用访问JSON数据详解

    这篇文章主要给大家介绍了关于C#如何通过匿名类直接使用访问JSON数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧。
    2018-02-02

最新评论