如何在 C# 中创建、读取和更新 Excel 文档

在日常开发中,C# 操作 Excel 文档是普遍且重要的需求。无论是数据导入导出、报表生成,还是数据分析,Excel 都扮演着不可或缺的角色。然而,手动处理大量数据不仅效率低下,还极易出错。传统的 C# 操作 Excel 的方式,如 COM Interop,又存在部署复杂、依赖 Office 环境以及性能瓶颈等诸多限制。

本文将深入探讨如何在 C# 中高效地创建、读取和更新 Excel 文档,告别传统方法的繁琐与局限。我们将重点介绍如何利用强大的第三方库 Spire.XLS for .NET,以其友好的 API 和出色的性能,简化复杂的 Excel 文件操作,助您轻松驾驭数据管理。


告别繁琐:为什么我们需要一个高效的Excel操作库?

直接操作 Office COM Interop 来实现 C# Excel CRUD(创建、读取、更新、删除)功能,往往会带来一系列问题:它要求目标机器安装有 Office 套件,部署过程复杂且容易出现版本兼容性问题;性能上,COM Interop 在处理大量数据时表现不佳;此外,它也不支持 .NET Core 等跨平台环境。

面对这些挑战,选择一个高效的第三方库变得尤为重要。例如,Spire.XLS for .NET 这样的库,能够独立运行,不依赖 Office 安装,提供高性能的数据处理能力,拥有直观易用的 API,并且完美支持 .NET Framework、.NET Core 以及 .NET 5+,极大地提升了Excel文档操作的开发效率和用户体验。


核心实践:使用Spire.XLS for .NET进行Excel文件操作

接下来,我们将通过具体的代码示例,演示如何使用 Spire.XLS for .NET 实现 Create Read Update Excel 的核心功能。

1. 环境准备与安装

首先,您需要通过 NuGet 包管理器安装 Spire.XLS for .NET。在您的项目中,右键点击"依赖项"或"引用",选择"管理 NuGet 包",搜索 Spire.XLS 并安装即可。或者在包管理器控制台中运行:

bash 复制代码
Install-Package Spire.XLS

2. 创建一个全新的Excel文档

创建一个新的 Excel 工作簿,并填充一些数据,是数据导出的基础。

csharp 复制代码
// 创建一个新的工作簿对象
Workbook workbook = new Workbook();

// 创建一个空的工作表
workbook.CreateEmptySheets(1);

// 获取第一个工作表的引用
Worksheet sheet = workbook.Worksheets[0];

// 填充一些数据
sheet.Range["A1"].Text = "姓名";
sheet.Range["B1"].Text = "年龄";
sheet.Range["A2"].Text = "张三";
sheet.Range["B2"].NumberValue = 30;
sheet.Range["A3"].Text = "李四";
sheet.Range["B3"].NumberValue = 25;

// 保存到文件
string filePath = "NewExcelDocument.xlsx";
workbook.SaveToFile(filePath, ExcelVersion.Version2016);
workbook.Dispose();
Console.WriteLine($"已创建新Excel文件: {filePath}");

关键API: Workbook 用于表示整个Excel文件,Worksheet 表示单个工作表,Range 用于访问单元格或区域,SaveToFile 用于保存文件。

3. 读取现有Excel文档的数据

从现有 Excel 文件中读取数据是数据导入和分析的关键步骤。

csharp 复制代码
// 加载一个现有的Excel文件
Workbook workbook = new Workbook();
workbook.LoadFromFile("NewExcelDocument.xlsx");

// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];

// 读取单元格数据
string name = sheet.Range["A2"].Text;
double age = sheet.Range["B2"].NumberValue;

Console.WriteLine($"读取到数据 - 姓名: {name}, 年龄: {age}");

// 遍历读取所有数据 (假设有数据区域)
for (int row = 1; row <= sheet.LastRow; row++)
{
    for (int col = 1; col <= sheet.LastColumn; col++)
    {
        Console.Write($"{sheet.Range[row, col].Text}\t");
    }
    Console.WriteLine();
}

workbook.Dispose();

关键API: Workbook.LoadFromFile 用于加载文件,Worksheet.Range 访问单元格,TextNumberValue 用于获取不同类型的数据。

4. 更新Excel文档中的数据

修改现有 Excel 文件的数据是常见的需求,包括更改单元格内容、插入行/列、更新样式等。

csharp 复制代码
// 加载一个现有的Excel文件
Workbook workbook = new Workbook();
workbook.LoadFromFile("NewExcelDocument.xlsx");

// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];

// 修改特定单元格内容
sheet.Range["B2"].NumberValue = 32; // 张三的年龄更新为32

// 插入新行
sheet.InsertRow(4); // 在第4行插入一行
sheet.Range["A4"].Text = "王五";
sheet.Range["B4"].NumberValue = 28;

// 更新单元格样式
sheet.Range["A1:B1"].Style.Font.IsBold = true; // 标题行加粗
sheet.Range["A1:B1"].Style.KnownColor = ExcelKnownItems.LightYellow; // 标题行背景色

// 保存修改
string updatedFilePath = "UpdatedExcelDocument.xlsx";
workbook.SaveToFile(updatedFilePath, ExcelVersion.Version2016);
workbook.Dispose();
Console.WriteLine($"已更新Excel文件: {updatedFilePath}");

关键API: Worksheet.InsertRow 插入行,Cell.Style 访问单元格样式,SaveToFile 保存修改。这些 API 使得 Excel File Operations 变得直观且强大。


总结

通过本文的介绍,我们看到了如何利用 Spire.XLS for .NET 这一高效的第三方库,在 C# 中轻松实现 Excel 文档的创建、读取和更新操作。它不仅解决了传统 COM Interop 方式的诸多痛点,还提供了简洁、高性能且跨平台的解决方案,显著提升了开发效率。

无论是处理大量数据,还是生成复杂报表,Spire.XLS for .NET 都能帮助开发者将精力更多地投入到业务逻辑的实现上,而非繁琐的文件操作细节。您也可以在项目中尝试使用 Spire.XLS for .NET,它必将是您 C# Excel 开发的得力助手。

相关推荐
不剪发的Tony老师1 小时前
DuckDB数据分析实战:读写Excel文件
数据分析·excel·duckdb
牛哇网络工作室9 小时前
UnityHDRP写实数字人全流程基础5—语音输入和语音识别
android·unity·c#·游戏引擎·aigc·语音识别·xcode
zlinear数据采集卡20 小时前
数据采集卡从入门到精通(9):分辨率与精度——16位卡不等于1/65536的精度
开发语言·数据库·fpga开发·开源·c#
深澈Vincel1 天前
我用 C# + WebView2 做了一个针对“流氓软件”的“一键清理工具“:架构实践与踩坑记录
c#
zlinear数据采集卡1 天前
数据采集卡从入门到精通(7):流水线型ADC——级级接力,高速与高精的平衡术
开发语言·arm开发·嵌入式硬件·fpga开发·c#
kingwebo'sZone1 天前
C# 根据公式计算的方法
开发语言·c#
lengjingzju1 天前
一天掌握Vim,精华使用笔记
笔记·vim·excel
阿部多瑞 ABU1 天前
告别手工核图:基于 .NET + MuPDFCore 的 CAD 等轴测 PDF 材料表提取与新旧版本对比实战
后端·算法·ui·pdf·c#
条形码D1 天前
DRG综合管理分析系统-目前已经支持CHS-DRG3.0
c#·drg·3.0分组器·drg分组器·chs-drg3.0分组器
灵析表格2 天前
灵析表格财务函数深度实用性分析与实操教程
开发语言·ai·json·excel·wps