C# 通过ExcelHelper出力excel

我们创建一个更通用的 ExcelHelper 类,以便在 C# 中更方便地生成和操作 Excel 文件。这个类将封装常用的 Excel 操作,如创建工作簿、添加工作表、设置单元格值、自动调整列宽等。

步骤

  1. 安装 EPPlus 库 首先,确保你已经安装了 EPPlus 库。你可以通过 NuGet 包管理器安装它:

     

    bash

    Install-Package EPPlus

  2. 创建 ExcelHelper 类 我们将创建一个 ExcelHelper 类,封装常用的 Excel 操作。

ExcelHelper 类

 

csharp

using OfficeOpenXml;
using System.IO;

public class ExcelHelper : IDisposable
{
    private ExcelPackage _package;

    public ExcelHelper()
    {
        _package = new ExcelPackage();
    }

    /// <summary>
    /// 添加一个新的工作表
    /// </summary>
    /// <param name="sheetName">工作表名称</param>
    /// <returns>ExcelWorksheet 对象</returns>
    public ExcelWorksheet AddWorksheet(string sheetName)
    {
        if (_package.Workbook.Worksheets[sheetName] != null)
        {
            throw new ArgumentException($"工作表 '{sheetName}' 已经存在。");
        }
        return _package.Workbook.Worksheets.Add(sheetName);
    }

    /// <summary>
    /// 设置单元格的值
    /// </summary>
    /// <param name="worksheet">工作表对象</param>
    /// <param name="address">单元格地址(例如 "A1")</param>
    /// <param name="value">单元格的值</param>
    public void SetCellValue(ExcelWorksheet worksheet, string address, object value)
    {
        worksheet.Cells[address].Value = value;
    }

    /// <summary>
    /// 自动调整列宽
    /// </summary>
    /// <param name="worksheet">工作表对象</param>
    public void AutoFitColumns(ExcelWorksheet worksheet)
    {
        int columnCount = worksheet.Dimension.End.Column;
        for (int col = 1; col <= columnCount; col++)
        {
            worksheet.Column(col).AutoFit();
        }
    }

    /// <summary>
    /// 保存 Excel 文件到指定路径
    /// </summary>
    /// <param name="filePath">文件路径</param>
    public void Save(string filePath)
    {
        FileInfo fileInfo = new FileInfo(filePath);
        _package.SaveAs(fileInfo);
    }

    /// <summary>
    /// 释放资源
    /// </summary>
    public void Dispose()
    {
        _package?.Dispose();
    }
}

使用 ExcelHelper 类

下面是如何使用 ExcelHelper 类来创建并保存一个包含数据的 Excel 文件的示例:

 

csharp

using System;

class Program
{
    static void Main(string[] args)
    {
        // 创建 ExcelHelper 实例
        using (ExcelHelper excelHelper = new ExcelHelper())
        {
            // 添加一个新的工作表
            ExcelWorksheet worksheet = excelHelper.AddWorksheet("Sheet1");

            // 设置单元格的值
            excelHelper.SetCellValue(worksheet, "A1", "ID");
            excelHelper.SetCellValue(worksheet, "B1", "Name");
            excelHelper.SetCellValue(worksheet, "C1", "Age");

            // 填充一些示例数据
            excelHelper.SetCellValue(worksheet, "A2", 1);
            excelHelper.SetCellValue(worksheet, "B2", "Alice");
            excelHelper.SetCellValue(worksheet, "C2", 30);

            excelHelper.SetCellValue(worksheet, "A3", 2);
            excelHelper.SetCellValue(worksheet, "B3", "Bob");
            excelHelper.SetCellValue(worksheet, "C3", 25);

            // 自动调整列宽
            excelHelper.AutoFitColumns(worksheet);

            // 保存 Excel 文件到指定路径
            excelHelper.Save(@"C:\path\to\your\output.xlsx");

            Console.WriteLine("Excel 文件已成功创建并保存!");
        }
    }
}

解释

  1. ExcelHelper 类:

    • AddWorksheet: 添加一个新的工作表并返回该工作表对象。如果工作表名称已经存在,则抛出异常。
    • SetCellValue: 设置指定单元格的值。
    • AutoFitColumns: 自动调整所有列的宽度以适应内容。
    • Save: 将 Excel 文件保存到指定路径。
    • Dispose: 释放 ExcelPackage 占用的资源。
  2. 使用示例:

    • 创建 ExcelHelper 实例。
    • 添加一个名为 "Sheet1" 的工作表。
    • 设置单元格 A1、B1 和 C1 的值分别为 "ID"、"Name" 和 "Age"。
    • 填充一些示例数据到工作表中。
    • 自动调整列宽。
    • 将 Excel 文件保存到指定路径。

这样,你就可以通过 ExcelHelper 类方便地生成和操作 Excel 文件了。如果你有更多复杂的需求,可以在 ExcelHelper 类中继续添加更多的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路飞VS草帽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值