C# 实现简单的 Excel 数据写入工具

简介: 基于EPPlus库实现C#将数据写入Excel文件,支持自定义表头与多行数据,自动调整列宽,操作简便,适用于非商业场景的数据导出需求。
基于 EPPlus 库将数据写入 Excel 文件,支持自定义表头和数据。
using OfficeOpenXml;
public class ExcelWriter
{
    public static bool WriteExcel(string filePath, List<string> headers, List<List<object>> data)
    {
        try
        {
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            using (var package = new ExcelPackage())
            {
                var worksheet = package.Workbook.Worksheets.Add("Sheet1");
                // 写入表头
                for (int col = 0; col < headers.Count; col++)
                {
                    worksheet.Cells[1, col + 1].Value = headers[col];
                    worksheet.Cells[1, col + 1].Style.Font.Bold = true;
                }
                // 写入数据
                for (int row = 0; row < data.Count; row++)
                {
                    var rowData = data[row];
                    for (int col = 0; col < rowData.Count; col++)
                    {
                        worksheet.Cells[row + 2, col + 1].Value = rowData[col];
                    }
                }
                // 自动调整列宽
                worksheet.Cells.AutoFitColumns();
                // 保存文件
                File.WriteAllBytes(filePath, package.GetAsByteArray());
            }
            Console.WriteLine("Excel写入成功!");
            return true;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"写入失败: {ex.Message}");
            return false;
        }
    }
    // 调用示例
    public static void TestExcelWriter()
    {
        var headers = new List<string> { "姓名", "年龄", "职业" };
        var data = new List<List<object>> {
            new List<object> { "张三", 25, "程序员" },
            new List<object> { "李四", 30, "设计师" }
        };
        WriteExcel("output.xlsx", headers, data);
    }
}
相关文章
|
5月前
|
C#
C# 实现简单的定时任务工具
基于 `System.Timers.Timer` 实现定时任务,支持周期性与单次执行。通过封装 Timer 类,提供启动、停止功能,并包含异常处理,确保任务稳定运行,适用于后台定时操作场景。
|
5月前
|
C#
C# 条件判断:if-else 与 switch 的实用场景
条件判断是流程控制的核心。if-else适用于多级条件判断,如根据积分决定会员等级;switch适用于多值匹配,C# 7.0+支持字符串和数值匹配,可清晰处理会员等级对应的优惠策略。
|
5月前
|
存储 C#
C# 实现简单的备忘录模式
备忘录模式在不破坏封装性的前提下,捕获并保存对象的内部状态,以便后续恢复。通过原发器创建备忘录,管理者存储备忘录,可实现状态回滚。
|
Android开发
IDEA编译gradle提示This version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot open this project, please retry with version 2020.3.1 or newer.
IDEA编译gradle提示This version of the Android Support plugin for IntelliJ IDEA (or Android Studio) cannot open this project, please retry with version 2020.3.1 or newer.
1634 1
|
3月前
|
缓存 编译器 C++
Keil MDK常见报错与解决方案详细笔记
本文系统梳理Keil MDK开发中常见错误,涵盖编译、链接、下载调试、路径配置、警告处理等八大类问题,含典型错误码(如#5、L6218E)、根因分析及实操解决方案,助力嵌入式开发者高效排错。(239字)
1700 3
|
5月前
|
C#
C# 异常处理:try-catch-finally 避免程序崩溃
异常处理用于捕获运行时错误(如空引用、文件不存在),确保程序稳定。通过 `try` 包裹可能出错的代码,`catch` 捕获并处理异常,`finally` 确保资源释放等操作始终执行,提升代码健壮性。
|
5月前
|
设计模式 算法 C#
C# 实现简单的观察者模式
简介:本文介绍了C#中三种常用设计模式的实现:观察者模式用于解耦主题与观察者,策略模式封装可互换的算法族,工厂模式则隐藏对象创建细节,提升代码可维护性与扩展性。
|
5月前
|
安全 C#
C# 实现简单的单例模式(懒汉式)
单例模式确保一个类仅存在一个实例,并提供全局访问点。通过私有构造函数防止外部实例化,结合静态属性和延迟初始化实现线程安全的唯一实例,常用于日志、配置管理等场景。
|
8月前
|
人工智能 固态存储 IDE
Android Studio 2025 超详细安装图解:从零到汉化一步到位
Android Studio 2025(Narwhal)是谷歌推出的最新安卓开发IDE,界面更现代,支持AI辅助编码、Jetpack Compose升级、多设备模拟器,构建速度更快,适配折叠屏等新形态设备,全面提升开发效率。
4585 2
|
C#
45【软件技术基础】C#调用NPOI插件对EXCEL进行处理
NPOI插件进行EXCEL表格处理,不依赖第三方软件,功能强大,使用简便。 C#调用NPOI插件进行EXCEL单个表和文件夹中批量表的处理。
587 1