C#中使用 ClosedXML 进行 Excel 操作

本文详细介绍了如何在C#项目中使用ClosedXML库进行Excel文件的操作,包括创建、保存、读取以及处理复杂数据的导出和读取过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 引用 ClosedXML 库

首先,确保你的项目已经引用了 ClosedXML 库。你可以通过 NuGet 包管理器或在 Visual Studio 中的包管理控制台中执行以下命令来安装它:

Install-Package ClosedXML

或者通过 NuGet 界面搜索 ClosedXML 并安装。

2. 创建和保存 Excel 文件

让我们首先创建一个新的 Excel 文件,并在其中添加一些数据:

using ClosedXML.Excel;
using System;

class Program
{
    static void Main()
    {
        // 创建一个新的工作簿
        var workbook = new XLWorkbook();

        // 添加一个工作表
        var worksheet = workbook.Worksheets.Add("SampleSheet");

        // 在单元格中写入数据
        worksheet.Cell("A1").Value = "Name";
        worksheet.Cell("B1").Value = "Age";

        worksheet.Cell("A2").Value = "John Doe";
        worksheet.Cell("B2").Value = 30;

        // 保存文件
        workbook.SaveAs("Sample.xlsx");

        Console.WriteLine("Excel 文件已创建和保存。");
    }
}

这个简单的示例创建了一个名为 “Sample.xlsx” 的 Excel 文件,其中包含名字和年龄的示例数据。

3. 读取 Excel 文件

现在,我们将读取之前创建的 Excel 文件:

using ClosedXML.Excel;
using System;

class Program
{
    static void Main()
    {
        try
        {
            // 打开现有工作簿
            var workbook = new XLWorkbook("Sample.xlsx");

            // 获取工作表
            var worksheet = workbook.Worksheet(1);

            // 读取单元格数据
            string name = worksheet.Cell("A2").Value.ToString();
            int age = worksheet.Cell("B2").GetValue<int>();

            // 在控制台输出
            Console.WriteLine($"姓名:{name}, 年龄:{age}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"读取 Excel 文件时出错:{ex.Message}");
        }
    }
}

这个例子展示了如何打开之前创建的 Excel 文件,并读取单元格中的数据。

4. 导出和读取复杂数据

假设我们有一个包含员工信息的 C# 类:

public class Employee
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Department { get; set; }
}

我们可以使用 ClosedXML 导出和读取这种复杂数据:

using ClosedXML.Excel;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // 创建一个新的工作簿
        var workbook = new XLWorkbook();
        var worksheet = workbook.Worksheets.Add("EmployeeData");

        // 导出数据到 Excel
        var employees = new List<Employee>
        {
            new Employee { Name = "Alice", Age = 28, Department = "IT" },
            new Employee { Name = "Bob", Age = 35, Department = "HR" },
            new Employee { Name = "Charlie", Age = 42, Department = "Finance" }
        };

        // 写入表头
        worksheet.Cell("A1").Value = "Name";
        worksheet.Cell("B1").Value = "Age";
        worksheet.Cell("C1").Value = "Department";

        // 写入数据
        for (int i = 0; i < employees.Count; i++)
        {
            worksheet.Cell(i + 2, 1).Value = employees[i].Name;
            worksheet.Cell(i + 2, 2).Value = employees[i].Age;
            worksheet.Cell(i + 2, 3).Value = employees[i].Department;
        }

        // 保存文件
        workbook.SaveAs("EmployeeData.xlsx");

        Console.WriteLine("Employee 数据已成功导出到 Excel 文件。");

        // 读取导出的 Excel 文件
        var readWorkbook = new XLWorkbook("EmployeeData.xlsx");
        var readWorksheet = readWorkbook.Worksheet(1);

        // 输出读取的数据
        Console.WriteLine("读取导出的 Excel 文件数据:");
        for (int i = 2; i <= readWorksheet.RowsUsed().Count(); i++)
        {
            string name = readWorksheet.Cell(i, 1).Value.ToString();
            int age = readWorksheet.Cell(i, 2).GetValue<int>();
            string department = readWorksheet.Cell(i, 3).Value.ToString();

            Console.WriteLine($"姓名:{name}, 年龄:{age}, 部门:{department}");
        }
    }
}

这个示例演示了如何将包含复杂数据的 C# 对象列表导出到 Excel 文件,并在读取时将其还原。

通过以上实例,你可以更好地了解如何使用 ClosedXML 进行 Excel 文件的创建、导出和读取。确保在实际项目中根据具体需求进行适当的调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值