0

0

C#如何高效读取XML并写入Excel .NET开发者的实用代码片段

幻夢星雲

幻夢星雲

发布时间:2025-11-27 19:07:21

|

972人浏览过

|

来源于php中文网

原创

使用C#结合XmlDocument和EPPlus可高效将XML数据导出到Excel。首先通过NuGet安装EPPlus库,然后加载XML文件并解析Record节点,提取Name、Age、City等字段存入字典列表,接着创建Excel工作表,写入表头和数据行,最后自动调整列宽并保存文件。该方法适用于配置导入、报表生成等场景,支持UTF-8中文内容,建议对大型文件使用XmlReader流式读取以提升性能。

c#如何高效读取xml并写入excel .net开发者的实用代码片段

在.NET开发中,处理XML数据并将其导出到Excel是常见的业务需求,比如配置导入、报表生成等场景。C#结合 System.XmlEPPlusNPOI 可以高效完成这一任务。以下是一个实用、结构清晰的代码片段,帮助你快速实现从XML读取到Excel写入的流程。

1. 准备工作:引入必要的库

推荐使用 EPPlus(支持 .NET 6+),它操作 Excel (.xlsx) 文件简单高效。

通过 NuGet 安装:
  • Install-Package EPPlus

确保你的项目启用非安全代码或处理 COM 的权限(如果使用 Microsoft.Office.Interop,则不推荐用于服务端)。

2. 示例 XML 结构

假设有一个名为 data.xml 的文件:

PixVerse
PixVerse

PixVerse是一款强大的AI视频生成工具,可以轻松地将多种输入转化为令人惊叹的视频。

下载


  
    张三
    28
    北京
  
  
    李四
    32
    上海
  

3. 使用 XmlDocument 高效读取 XML

XmlDocument 适合结构清晰的小到中型 XML 文件,易于遍历节点。

using System;
using System.Collections.Generic;
using System.IO;
using System.Xml;
using OfficeOpenXml; // EPPlus

class Program
{
    static void Main()
    {
        string xmlPath = "data.xml";
        string excelPath = "output.xlsx";

        var records = new List>();

        XmlDocument doc = new XmlDocument();
        doc.Load(xmlPath);

        XmlNodeList recordNodes = doc.SelectNodes("//Record");

        foreach (XmlNode node in recordNodes)
        {
            var record = new Dictionary();
            record["Name"] = node["Name"]?.InnerText ?? "";
            record["Age"] = node["Age"]?.InnerText ?? "";
            record["City"] = node["City"]?.InnerText ?? "";
            records.Add(record);
        }

        WriteToExcel(records, excelPath);
        Console.WriteLine("数据已成功写入 Excel:" + excelPath);
    }
}

4. 使用 EPPlus 写入 Excel

将读取的数据写入 Excel 表格,首行为列标题。

static void WriteToExcel(List> data, string filePath)
{
    if (data.Count == 0) return;

    ExcelPackage.LicenseContext = LicenseContext.NonCommercial; // 免费使用

    using (var package = new ExcelPackage())
    {
        var worksheet = package.Workbook.Worksheets.Add("数据表");

        // 写入表头
        var headers = data[0].Keys;
        int col = 1;
        foreach (var header in headers)
        {
            worksheet.Cells[1, col].Value = header;
            col++;
        }

        // 写入数据行
        int row = 2;
        foreach (var record in data)
        {
            col = 1;
            foreach (var key in headers)
            {
                worksheet.Cells[row, col].Value = record[key];
                col++;
            }
            row++;
        }

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

        // 保存文件
        FileInfo file = new FileInfo(filePath);
        package.SaveAs(file);
    }
}

5. 进阶建议

  • 对于大型 XML 文件,考虑使用 XmlReader 流式读取,避免内存溢出。
  • 添加异常处理(如文件不存在、格式错误)提升健壮性。
  • 若需样式控制(字体、边框),EPPlus 支持详细格式设置。
  • 支持中文路径和内容时,确保文件编码一致(UTF-8)。

基本上就这些。这套组合拳适用于大多数数据迁移、报表导出场景,代码简洁且性能良好。

相关专题

更多
pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1879

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2086

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

1008

2024.11.28

vsd文件打开方法
vsd文件打开方法

vsd文件打开方法有使用Microsoft Visio软件、使用Microsoft Visio查看器、转换为其他格式等。想了解更多vsd文件相关内容,可以阅读本专题下面的文章。

480

2023.10.30

excel对比两列数据异同
excel对比两列数据异同

Excel作为数据的小型载体,在日常工作中经常会遇到需要核对两列数据的情况,本专题为大家提供excel对比两列数据异同相关的文章,大家可以免费体验。

1381

2023.07.25

excel重复项筛选标色
excel重复项筛选标色

excel的重复项筛选标色功能使我们能够快速找到和处理数据中的重复值。本专题为大家提供excel重复项筛选标色的相关的文章、下载、课程内容,供大家免费下载体验。

403

2023.07.31

excel复制表格怎么复制出来和原来一样大
excel复制表格怎么复制出来和原来一样大

本专题为大家带来excel复制表格怎么复制出来和原来一样大相关文章,帮助大家解决问题。

557

2023.08.02

excel表格斜线一分为二
excel表格斜线一分为二

在Excel表格中,我们可以使用斜线将单元格一分为二。本专题为大家带来excel表格斜线一分为二怎么弄的相关文章,希望可以帮到大家。

1242

2023.08.02

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

9

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 12万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号