欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用C#將Excel轉(zhuǎn)為XML的兩種方案

 更新時(shí)間:2025年09月12日 10:28:28   作者:咕白m625  
在數(shù)據(jù)處理場(chǎng)景中,Excel文件常作為中間格式存在,但其結(jié)構(gòu)化程度有限,若需將Excel數(shù)據(jù)導(dǎo)入系統(tǒng)、進(jìn)行二次分析或與XML格式服務(wù)對(duì)接,Excel 轉(zhuǎn) XML 成為一項(xiàng)高頻需求,所以本文給大家介紹了使用C#將Excel轉(zhuǎn)為XML的兩種方案,需要的朋友可以參考下

在數(shù)據(jù)處理場(chǎng)景中,Excel文件常作為中間格式存在,但其結(jié)構(gòu)化程度有限。若需將Excel數(shù)據(jù)導(dǎo)入系統(tǒng)、進(jìn)行二次分析或與XML格式服務(wù)對(duì)接,Excel 轉(zhuǎn) XML 成為一項(xiàng)高頻需求。然而,傳統(tǒng)方法往往依賴復(fù)雜腳本或第三方工具,效率低、易出錯(cuò)。

本文將分享一個(gè)輕量、穩(wěn)定的方案:使用免費(fèi)庫(kù) Free Spire.XLS for .NET ,通過(guò) C# 代碼實(shí)現(xiàn) Excel 到XML 的高效轉(zhuǎn)換。

優(yōu)勢(shì)分析

相比手動(dòng)解析或使用OpenXML,F(xiàn)ree Spire.XLS提供成熟的 .NET 封裝,支持無(wú)需安裝 Office 環(huán)境即可讀寫 Excel 文件。

對(duì)比項(xiàng)傳統(tǒng)方法(如VBA)Free Spire.XLS for .NET
依賴Office? 需要安裝? 無(wú)依賴
開(kāi)發(fā)效率??????
轉(zhuǎn)換穩(wěn)定性?? 易出錯(cuò)? 高度可靠
適用場(chǎng)景小型腳本輕量級(jí)

需注意免費(fèi)版雖無(wú)任何水印,但是有一定頁(yè)數(shù)限制。

方案一:手動(dòng)構(gòu)建 XML 結(jié)構(gòu)(靈活可控)

以下代碼通過(guò)手動(dòng)遍歷 Excel 單元格、構(gòu)建 XML 節(jié)點(diǎn)的方式,實(shí)現(xiàn)數(shù)據(jù)從 Excel 到 XML 的轉(zhuǎn)換:

using System.Xml;
using Spire.Xls;

class ExcelToXmlConverter
{
    static void Main(string[] args)
    {
        // 創(chuàng)建Workbook對(duì)象
        Workbook wb = new Workbook();

        // 加載Excel文件
        wb.LoadFromFile("data.xlsx");

        // 獲取第一個(gè)工作表
        Worksheet ws = wb.Worksheets[0];

        // 獲取已使用的區(qū)域
        CellRange usedRange = ws.AllocatedRange;

        // 創(chuàng)建XML文檔
        XmlDocument xmlDoc = new XmlDocument();
        XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
        xmlDoc.AppendChild(xmlDeclaration);

        // 創(chuàng)建根元素
        XmlElement root = xmlDoc.CreateElement("Worksheet");
        xmlDoc.AppendChild(root);

        // 設(shè)置工作表名稱
        XmlElement nameElement = xmlDoc.CreateElement("Name");
        nameElement.InnerText = ws.Name;
        root.AppendChild(nameElement);

        // 遍歷已使用的區(qū)域(行)
        for (int i = 0; i < usedRange.Rows.Length; i++)
        {
            XmlElement rowElement = xmlDoc.CreateElement("Row");
            root.AppendChild(rowElement);

            // 遍歷列
            for (int j = 0; j < usedRange.Columns.Length; j++)
            {
                // 獲取單元格的值
                object cellValue = usedRange[i+1, j+1].Value;

                // 創(chuàng)建單元格元素
                XmlElement cellElement = xmlDoc.CreateElement("Cell");
                rowElement.AppendChild(cellElement);

                // 創(chuàng)建數(shù)據(jù)元素
                XmlElement dataElement = xmlDoc.CreateElement("Data");
                dataElement.InnerText = cellValue?.ToString() ?? string.Empty;
                cellElement.AppendChild(dataElement);
            }
        }

        // 保存XML文件
        xmlDoc.Save("工作表寫入XML.xml");

        // 釋放資源
        wb.Dispose();
    }
}

該方案的核心優(yōu)勢(shì)在于高度靈活可控,開(kāi)發(fā)者可根據(jù)需求自定義 XML 的結(jié)構(gòu)與節(jié)點(diǎn)命名:

  • ? 節(jié)點(diǎn)自定義:可自由修改根節(jié)點(diǎn)(如將 <Worksheet> 改為 <ExcelData> )、行節(jié)點(diǎn)(<Row>)、單元格節(jié)點(diǎn)(<Cell>)的名稱,滿足不同場(chǎng)景下的 XML 格式要求;
  • ? 結(jié)構(gòu)可視化:通過(guò)手動(dòng)創(chuàng)建節(jié)點(diǎn),開(kāi)發(fā)者能清晰掌控 XML 的層級(jí)關(guān)系(如 Worksheet -> Name、Worksheet -> Row -> Cell -> Data),便于后續(xù) XML 文件的解析與使用。

方案二:調(diào)用內(nèi)置方法(簡(jiǎn)潔高效

Free Spire.XLS 組件提供了 SaveAsXml 方法,無(wú)需手動(dòng)構(gòu)建 XML 結(jié)構(gòu)即可實(shí)現(xiàn) Excel 到 XML 的快速轉(zhuǎn)換,代碼如下:

using Spire.Xls;

namespace ExcelToXML
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //Load an Excel file
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("Sample.xlsx");

            // Save the Excel file in Open XML file format
            workbook.SaveAsXml("ExcelToXML.xml");
        }
    }
}

該方案的最大優(yōu)勢(shì)在于簡(jiǎn)潔高效,通過(guò)封裝好的 API 大幅簡(jiǎn)化開(kāi)發(fā)流程:

  • ? 代碼極簡(jiǎn):僅需 3 行核心代碼,即可完成轉(zhuǎn)換,降低開(kāi)發(fā)難度與代碼維護(hù)成本;
  • ? 遵循標(biāo)準(zhǔn)格式SaveAsXml 方法生成的 XML 文件嚴(yán)格遵循Open XML 規(guī)范(微軟定義的開(kāi)放式文檔格式標(biāo)準(zhǔn)),確保文件的兼容性,可被其他支持 Open XML 的軟件(如 Office、Apache POI 等)正常解析;

兩種方案適用場(chǎng)景

開(kāi)發(fā)者可根據(jù)實(shí)際需求選擇合適方案:

  1. 若需生成自定義格式的 XML 文件(如用于特定系統(tǒng)的數(shù)據(jù)交換、自定義配置文件),或需對(duì) Excel 數(shù)據(jù)進(jìn)行過(guò)濾、格式化等處理,建議選擇方案一;
  2. 若僅需快速將 Excel 轉(zhuǎn)換為標(biāo)準(zhǔn) Open XML 格式,且無(wú)需自定義結(jié)構(gòu)(如用于 Office 軟件兼容、通用數(shù)據(jù)備份),建議選擇方案二

到此這篇關(guān)于使用C#將Excel轉(zhuǎn)為XML的兩種方案的文章就介紹到這了,更多相關(guān)C# Excel轉(zhuǎn)為XML內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#創(chuàng)建自簽名認(rèn)證文件的方法

    C#創(chuàng)建自簽名認(rèn)證文件的方法

    這篇文章主要介紹了C#創(chuàng)建自簽名認(rèn)證文件的方法,實(shí)例分析了C#自簽名認(rèn)證文件的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • C#.NET獲取撥號(hào)連接的寬帶連接方法

    C#.NET獲取撥號(hào)連接的寬帶連接方法

    這篇文章主要介紹了C#.NET獲取撥號(hào)連接的寬帶連接方法,實(shí)例演示了一個(gè)C#封裝的ADSL撥號(hào)連接類及其使用方法,需要的朋友可以參考下
    2015-06-06
  • C# Winform按鈕中圖片實(shí)現(xiàn)左圖右字的效果實(shí)例

    C# Winform按鈕中圖片實(shí)現(xiàn)左圖右字的效果實(shí)例

    這篇文章主要給大家介紹了關(guān)于C# Winform按鈕中圖片實(shí)現(xiàn)左圖右字效果的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Unity 按鈕添加OnClick事件操作

    Unity 按鈕添加OnClick事件操作

    這篇文章主要介紹了Unity 按鈕添加OnClick事件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • C# 中string.split用法詳解

    C# 中string.split用法詳解

    本文給大家分享了C# 中string.split用法的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-06-06
  • C#多線程之Semaphore用法詳解

    C#多線程之Semaphore用法詳解

    這篇文章主要為大家詳細(xì)介紹了C#多線程之Semaphore用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • C# WinForm實(shí)現(xiàn)Win7 Aero透明效果代碼

    C# WinForm實(shí)現(xiàn)Win7 Aero透明效果代碼

    這篇文章主要介紹了C# WinForm實(shí)現(xiàn)Win7 Aero透明效果代碼,通過(guò)調(diào)用dwmapi.dll相關(guān)方法實(shí)現(xiàn),需要的朋友可以參考下
    2014-07-07
  • C#枚舉數(shù)值與名稱的轉(zhuǎn)換實(shí)例分享

    C#枚舉數(shù)值與名稱的轉(zhuǎn)換實(shí)例分享

    在應(yīng)用枚舉的時(shí)候,時(shí)常需要將枚舉和數(shù)值相互轉(zhuǎn)換的情況。有時(shí)候還需要轉(zhuǎn)換成相應(yīng)的中文。下面介紹一種方法
    2013-08-08
  • UnityShader3實(shí)現(xiàn)轉(zhuǎn)圈與冷卻效果

    UnityShader3實(shí)現(xiàn)轉(zhuǎn)圈與冷卻效果

    這篇文章主要為大家詳細(xì)介紹了UnityShader3實(shí)現(xiàn)轉(zhuǎn)圈與冷卻效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • C#中虛方法virtual示例詳解

    C#中虛方法virtual示例詳解

    這篇文章主要介紹了C#中虛方法virtual的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-03-03

最新評(píng)論