C#如何写入Excel文件?附完整项目实例与源码

来源:AI编程作者:不吃香菜头衔:草根站长
导读:本期聚焦于小伙伴创作的《C#如何写入Excel文件?附完整项目实例与源码》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#如何写入Excel文件?附完整项目实例与源码》有用,将其分享出去将是对创作者最好的鼓励。

在C#开发中,将数据写入Excel文件是常见的需求,比如导出报表、保存业务数据等。目前主流的实现方式有两种,分别是使用EPPlus库和NPOI库,下面分别介绍两种方案的实现方法。

C#如何写入Excel文件?附完整项目实例与源码

方案一:使用EPPlus库写入Excel

环境准备

首先需要安装EPPlus库,可以通过NuGet包管理器搜索EPPlus安装,也可以在项目文件中添加以下引用配置:

<PackageReference Include="EPPlus" Version="6.2.3" />

完整实现代码

以下代码实现了创建Excel文件、写入表头和数据内容的完整逻辑:

using OfficeOpenXml;
using System;
using System.IO;

namespace ExcelWriteDemo
{
    class EPPlusWriteExample
    {
        static void Main(string[] args)
        {
            // 设置EPPlus的非商业许可
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            // 定义Excel文件路径
            string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "test_epplus.xlsx");
            // 创建Excel文件对象
            using (ExcelPackage excelPackage = new ExcelPackage())
            {
                // 添加工作表
                ExcelWorksheet worksheet = excelPackage.Worksheets.Add("学生信息");
                // 写入表头
                worksheet.Cells[1, 1].Value = "姓名";
                worksheet.Cells[1, 2].Value = "年龄";
                worksheet.Cells[1, 3].Value = "班级";
                // 写入数据行
                worksheet.Cells[2, 1].Value = "张三";
                worksheet.Cells[2, 2].Value = 18;
                worksheet.Cells[2, 3].Value = "高三一班";
                worksheet.Cells[3, 1].Value = "李四";
                worksheet.Cells[3, 2].Value = 19;
                worksheet.Cells[3, 3].Value = "高三二班";
                // 自动调整列宽
                worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();
                // 保存文件
                excelPackage.SaveAs(new FileInfo(filePath));
            }
            Console.WriteLine("EPPlus写入Excel完成,文件路径:" + filePath);
        }
    }
}

方案二:使用NPOI库写入Excel

环境准备

NPOI库支持操作xls和xlsx两种格式的Excel文件,安装方式同样通过NuGet,搜索NPOI安装即可,项目文件配置如下:

<PackageReference Include="NPOI" Version="2.6.1" />

完整实现代码

以下代码实现了使用NPOI写入xlsx格式Excel文件的完整逻辑:

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.IO;

namespace ExcelWriteDemo
{
    class NPOIWriteExample
    {
        static void Main(string[] args)
        {
            // 创建工作簿对象,xlsx格式对应XSSFWorkbook
            IWorkbook workbook = new XSSFWorkbook();
            // 添加工作表
            ISheet sheet = workbook.CreateSheet("商品信息");
            // 创建表头行
            IRow headerRow = sheet.CreateRow(0);
            headerRow.CreateCell(0).SetCellValue("商品名称");
            headerRow.CreateCell(1).SetCellValue("单价");
            headerRow.CreateCell(2).SetCellValue("库存数量");
            // 创建数据行
            IRow dataRow1 = sheet.CreateRow(1);
            dataRow1.CreateCell(0).SetCellValue("笔记本电脑");
            dataRow1.CreateCell(1).SetCellValue(4999.00);
            dataRow1.CreateCell(2).SetCellValue(50);
            IRow dataRow2 = sheet.CreateRow(2);
            dataRow2.CreateCell(0).SetCellValue("无线鼠标");
            dataRow2.CreateCell(1).SetCellValue(89.00);
            dataRow2.CreateCell(2).SetCellValue(200);
            // 定义文件保存路径
            string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "test_npoi.xlsx");
            // 写入文件
            using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))
            {
                workbook.Write(fs);
            }
            Console.WriteLine("NPOI写入Excel完成,文件路径:" + filePath);
        }
    }
}

两种方案对比

可以通过以下表格了解两种库的适用场景:

对比项EPPlusNPOI
支持格式仅支持xlsx支持xls和xlsx
使用复杂度API简洁,上手快API稍复杂,功能更全面
性能表现处理大文件性能较好兼容性好,老格式支持完善

常见问题说明

  • 如果写入的文件需要兼容老版本Office,建议选择NPOI库,生成xls格式文件。
  • 使用EPPlus时需要注意许可问题,商业项目需要购买对应许可,非商业项目设置LicenseContext.NonCommercial即可。
  • 写入大量数据时,建议批量操作单元格,避免频繁创建对象影响性能。
以上代码都是可以直接运行的完整实例,开发者可以根据自己的项目需求选择合适的方案,调整写入的表头和数据内容即可实现对应的Excel导出功能。

C#Excel写入EPPlusNPOI项目实例修改时间:2026-06-17 16:27:41

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。