C#怎么将DataTable导出到Excel C#不依赖Office组件导出数据的方法


推荐使用NPOI、ClosedXML、EPPlus或CSV方式导出DataTable到Excel。NPOI兼容XLS/XLSX且无需Office组件,ClosedXML语法简洁易用,EPPlus支持高级格式功能强大,CSV方式最轻量高效。四种方法均不依赖Office,部署方便,适用于不同场景需求。

c#怎么将datatable导出到excel c#不依赖office组件导出数据的方法

在C#中将DataTable导出到Excel,且不依赖Office组件(如Microsoft.Office.Interop.Excel),推荐使用第三方开源库来实现高效、稳定的数据导出。以下介绍几种主流方法,并提供完整示例代码。

使用 NPOI 库导出 DataTable 到 Excel

NPOI 是 .NET 平台下最流行的无需安装 Office 即可操作 Excel 的开源库,支持读写 XLS 和 XLSX 格式。

步骤如下:
  • 通过 NuGet 安装 NPOI:Install-Package NPOI
  • 创建工作簿和工作表
  • 遍历 DataTable 的列名和行数据写入单元格
  • 将文件保存到磁盘或输出为流

示例代码:

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

public void ExportDataTableToExcel(DataTable dt, string filePath)
{
    IWorkbook workbook = new XSSFWorkbook(); // 创建一个支持 .xlsx 的工作簿
    ISheet sheet = workbook.CreateSheet("Sheet1");

    // 创建表头
    IRow headerRow = sheet.CreateRow(0);
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        headerRow.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
    }

    // 填充数据行
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        IRow dataRow = sheet.CreateRow(i + 1);
        for (int j = 0; j < dt.Columns.Count; j++)
        {
            dataRow.CreateCell(j).SetCellValue(dt.Rows[i][j]?.ToString() ?? "");
        }
    }

    // 自动调整列宽
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        sheet.AutoSizeColumn(i);
    }

    // 保存到文件
    using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))
    {
        workbook.Write(fs);
    }
}

使用 ClosedXML 导出(更简洁语法)

ClosedXML 封装了底层复杂性,提供类似 Excel 对象模型的易用接口,基于 OpenXML 开发,仅支持 .xlsx 文件。

NuGet 安装:Install-Package ClosedXML

示例代码:

using ClosedXML.Excel;
using System.Data;

public void ExportWithClosedXML(DataTable dt, string filePath)
{
    using (var wb = new XLWorkbook())
    {
        wb.Worksheets.Add(dt, "数据表");
        wb.S*eAs(filePath);
    }
}

非常简洁,一行代码即可将 DataTable 添加为工作表。

会译·对照式翻译 会译·对照式翻译

会译是一款AI智能翻译浏览器插件,支持多语种对照式翻译

会译·对照式翻译 79 查看详情 会译·对照式翻译

使用 EPPlus(功能强大,适用于复杂场景)

EPPlus 支持公式、图表、样式、条件格式等高级功能,适合需要格式化输出的场景。

NuGet 安装:Install-Package EPPlus

注意:从 v5 起需遵守 Polyform Non-Commercial 许可用于非商业项目。

using OfficeOpenXml;
using System.Data;

public void ExportWithEPPlus(DataTable dt, string filePath)
{
    ExcelPackage.LicenseContext = LicenseContext.NonCommercial; // 设置许可上下文

    using (var package = new ExcelPackage())
    {
        var worksheet = package.Workbook.Worksheets.Add("数据");
        worksheet.Cells["A1"].LoadFromDataTable(dt, true); // true 表示包含标题
        File.WriteAllBytes(filePath, package.GetAsByteArray());
    }
}

直接生成 CSV(最轻量方式)

如果不需要复杂格式,可导出为 CSV 文件,兼容 Excel 打开,性能高且无需引用任何库。

using System.IO;
using System.Text;

public void ExportToCsv(DataTable dt, string filePath)
{
    StringBuilder sb = new StringBuilder();

    // 写入列名
    var headers = dt.Columns.Cast<DataColumn>().Select(c => $"\"{c.ColumnName}\"");
    sb.AppendLine(string.Join(",", headers));

    // 写入每一行
    foreach (DataRow row in dt.Rows)
    {
        var fields = row.ItemArray.Select(field =>
            $"\"{field?.ToString().Replace(\""\", \"""\")}\"");
        sb.AppendLine(string.Join(",", fields));
    }

    File.WriteAllText(filePath, sb.ToString(), Encoding.UTF8);
}

CSV 可被 Excel 正常打开,适合大数据量快速导出。

基本上就这些。选择哪种方式取决于你的需求:NPOI 兼容性最好,ClosedXML 最简单,EPPlus 功能最强,CSV 最轻便。都不依赖 Office 组件,部署方便。

以上就是C#怎么将DataTable导出到Excel C#不依赖Office组件导出数据的方法的详细内容,更多请关注其它相关文章!


# 大数据  # excel  # 查询结果  # .n  # 格式化输出  # c#  # stream  # microsoft  # csv  # office  # access  # app  # 连江网络推广营销排名  # 广西营销策划推广渠道  # 邹平县网站建设维护  # 网站怎么推广优选火3星  # 独立网站新手建设  # 营销推广烧烤文案怎么写  # 农产品营销与推广的区别  # seo和微博关系  # 浙江关键词排名渠道  # 中小企业网站推广团队  # 最轻  # 操作方法  # 如何用  # 易用  # 怎么做  # 适用于  # 推荐使用  # 导出到  # 不依赖 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 猫眼电影app怎么查询电影院的营业时间_猫眼电影影院营业时间查询教程  Flexbox布局中Stencil组件宽度不显示问题解析与:host尺寸控制  c++如何使用std::thread::join和detach_c++线程生命周期管理  51漫画网实时入口 51漫画网页版官方免费漫画入口  冬季去哪个城市旅游更有可能观测到极光  天堂漫画网页版在线阅读 天堂漫画手机版入口  QQ邮箱PC端登录页面_QQ邮箱网页版登录界面  奥克斯空调不制热啥毛病_奥克斯空调不制热原因分析及解决技巧  C++如何实现矩阵乘法_C++二维数组矩阵运算代码示例  《偃武》甘宁技能详解  rabbitmq 持久化有什么缺点?  喜茶GO更换登录账号方法  PHP动态导航按钮:根据用户登录状态切换链接与文本  抖音如何进行蓝V认证 抖音企业号申请所需资料与流程  《植物大战僵尸3》火龙草作用介绍  《飞猪旅行》购买汽车票方法  Scipy Sparse CSR 矩阵非零元素行级遍历的最佳实践  在Peewee中处理PostgreSQL记录重复:一站式数据摄取教程  优化 WooCommerce 产品价格显示与自定义短代码集成  个人所得税办理入口 个人所得税综合所得年度汇算入口  Go语言中方法与接收器:指针和值类型的调用机制详解  漫蛙manwa漫画官网链接_漫蛙manwa最新可用网址推荐  如何使用 composer 和 aop-php 实现 AOP 编程?  163邮箱登录入口官网 163.com邮箱登录入口  《顺丰同城骑士》查看我的技能方法  《饿了么》拼好饭点外卖教程2025  iSpring三分屏制作教程  如何自定义苹果手机铃声  第五人格PC版怎么避免被封号_第五人格PC版防封号注意事项  蛙漫2(台版)正版官网 2025免费网页版分享  Lar*el Eloquent中通过Join查询关联数据表:解决多行子查询问题  PHP中获取HTTP响应状态消息:方法与限制  三星M34录音变声问题_Samsung M34麦克风调整  Yandex无需登录畅游 俄罗斯搜索引擎最新官网指南  招商淘客入门指南  猫眼app抢票快还是小程序快  快手缓存清理方法  《via浏览器》强制缩放网页设置方法  WPS长文档分栏排版不乱方法_WPS分栏+分节符报纸排版教程  优酷下载视频的清晰度怎么选_优酷缓存清晰度设置与选择指南  Highcharts雷达图轴线交点数值标注指南  BunnyStream TUS视频上传指南:解决401认证错误与参数配置  键盘声音异常怎么回事_键盘异响怎么处理  邮编号码查询app有哪些_邮编号码查询推荐app及使用体验  Python自动化抓取GBGB赛狗比赛结果:日期范围与赛道筛选教程  家里的小飞虫总是不断,用什么方法可以彻底根除?  苹果SE如何开启单手模式_苹果SE单手操作功能  荣耀Magic7拍照夜景噪点处理_荣耀Magic7相机优化  优化CSS动画与J*aScript定时器协同:构建稳定Toast提示  视频转蓝光m2ts格式 

 2025-11-20

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.