最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python實(shí)現(xiàn)將CSV轉(zhuǎn)換為XML格式

 更新時(shí)間:2026年02月24日 08:16:25   作者:Eiceblue  
如果你需要快速實(shí)現(xiàn) CSV 到 XML 的格式轉(zhuǎn)換,本文將為大家詳細(xì)介紹一下如何使用Free Spire.XLS for Python實(shí)現(xiàn) CSV 轉(zhuǎn) XML 格式,希望對(duì)大家有所幫助

在數(shù)據(jù)處理場(chǎng)景中,CSV 以輕量、易編輯的特點(diǎn)成為日常數(shù)據(jù)交換的常用格式,但 XML 憑借結(jié)構(gòu)化、可擴(kuò)展的優(yōu)勢(shì),在企業(yè)級(jí)系統(tǒng)集成、跨平臺(tái)數(shù)據(jù)交互中更具優(yōu)勢(shì)。

如果你需要快速實(shí)現(xiàn) CSV 到 XML 的格式轉(zhuǎn)換,Free Spire.XLS for Python 是一個(gè)高效且免費(fèi)的選擇 — 它無(wú)需依賴 Microsoft Office,能輕松解析 CSV 文件并輔助完成 XML 結(jié)構(gòu)化輸出。本文將介紹如何使用該庫(kù)實(shí)現(xiàn) CSV 轉(zhuǎn) XML 格式。

一、核心優(yōu)勢(shì)與應(yīng)用場(chǎng)景

1. 免費(fèi) Python 庫(kù)核心亮點(diǎn)

  • 免費(fèi)無(wú)水印:使用無(wú)需授權(quán),無(wú)功能水印 ;
  • 輕量化:僅需Python環(huán)境,無(wú)需安裝大型辦公軟件;
  • 雙模式轉(zhuǎn)換:支持手動(dòng)構(gòu)建自定義XML結(jié)構(gòu),也支持原生 SaveAsXml() 導(dǎo)出Open XML;
  • 高兼容性:支持讀取各種編碼、格式的CSV文件,輸出標(biāo)準(zhǔn)XML格式;
  • 易上手:API設(shè)計(jì)簡(jiǎn)潔,新手也能快速掌握核心操作。

2. 適用場(chǎng)景

  • 企業(yè)系統(tǒng)對(duì)接:將業(yè)務(wù)系統(tǒng)導(dǎo)出的CSV報(bào)表轉(zhuǎn)換為XML格式供上游系統(tǒng)調(diào)用;
  • 數(shù)據(jù)標(biāo)準(zhǔn)化:統(tǒng)一多源CSV數(shù)據(jù)的輸出格式,適配XML接口規(guī)范;
  • 自動(dòng)化處理:集成到Python腳本中,實(shí)現(xiàn)CSV轉(zhuǎn)XML的批量/定時(shí)處理;
  • 辦公系統(tǒng)兼容:生成的Open XML可直接被Excel等辦公軟件識(shí)別。

二、CSV 轉(zhuǎn) XML 的兩種方式

安裝 Python 庫(kù)

可通過(guò) pip命令一鍵安裝:

pip install Spire.XLS.Free

準(zhǔn)備測(cè)試 CSV 文件

先創(chuàng)建一個(gè)示例CSV文件(命名為data.csv),內(nèi)容如下(模擬用戶信息):

姓名,年齡,城市,職業(yè)
張三,28,北京,工程師
李四,32,上海,產(chǎn)品經(jīng)理
王五,25,廣州,設(shè)計(jì)師

方式1:手動(dòng)構(gòu)建自定義結(jié)構(gòu) XML(靈活適配業(yè)務(wù))

該方式可自定義XML節(jié)點(diǎn)名稱、層級(jí),適配各類(lèi)業(yè)務(wù)系統(tǒng)的XML接口規(guī)范,是最常用的靈活方案。

from spire.xls import *
from spire.xls.common import *
import xml.etree.ElementTree as ET
from xml.dom import minidom

def csv_to_custom_xml(csv_path, xml_path):
    """
    手動(dòng)構(gòu)建自定義結(jié)構(gòu)的XML(靈活適配業(yè)務(wù)需求)
    :param csv_path: 輸入CSV文件路徑
    :param xml_path: 輸出XML文件路徑
    """
    try:
        # 1. 初始化Workbook對(duì)象,加載CSV文件
        workbook = Workbook()
        # 設(shè)置加載CSV的編碼(根據(jù)實(shí)際情況調(diào)整,如gbk、utf-8)
        workbook.LoadFromFile(csv_path, ",", 1, 1)
        
        # 2. 獲取第一個(gè)工作表(CSV加載后默認(rèn)在第一個(gè)Sheet)
        worksheet = workbook.Worksheets[0]
        
        # 3. 獲取CSV的總行數(shù)和總列數(shù)(排除空行)
        row_count = worksheet.LastRow
        col_count = worksheet.LastColumn
        
        # 4. 構(gòu)建XML根節(jié)點(diǎn)
        root = ET.Element("DataRecords")
        
        # 5. 遍歷CSV數(shù)據(jù)(第一行為表頭,從第二行開(kāi)始是數(shù)據(jù))
        headers = []
        for col in range(1, col_count + 1):
            # 獲取表頭文本
            header_text = worksheet.Range[1, col].Text
            headers.append(header_text)
        
        # 遍歷數(shù)據(jù)行
        for row in range(2, row_count + 1):
            # 創(chuàng)建子節(jié)點(diǎn)(每個(gè)數(shù)據(jù)行對(duì)應(yīng)一個(gè)Record節(jié)點(diǎn))
            record = ET.SubElement(root, "Record")
            # 遍歷當(dāng)前行的列
            for col in range(1, col_count + 1):
                # 獲取單元格值
                cell_value = worksheet.Range[row, col].Text
                # 創(chuàng)建列節(jié)點(diǎn),節(jié)點(diǎn)名=表頭,節(jié)點(diǎn)值=單元格內(nèi)容
                field = ET.SubElement(record, headers[col - 1])
                field.text = cell_value
        
        # 6. 保存XML文件
        tree = ET.ElementTree(root)
        tree.write(custom_xml_file, encoding="utf-8", xml_declaration=True)
        
        print(f"自定義XML轉(zhuǎn)換成功!文件已保存至:{xml_path}")
        
    except Exception as e:
        print(f"轉(zhuǎn)換失?。簕str(e)}")
    finally:
        # 釋放Workbook資源
        workbook.Dispose()

# 調(diào)用自定義XML轉(zhuǎn)換函數(shù)
if __name__ == "__main__":
    csv_file = "data.csv"
    custom_xml_file = "custom_data.xml"
    csv_to_custom_xml(csv_file, custom_xml_file)

方式2:導(dǎo)出為 Open XML 格式(快速兼容辦公系統(tǒng))

Free Spire.XLS 提供原生 SaveAsXml() 方法,可直接將加載的 CSV 文件導(dǎo)出為符合Open XML Spreadsheet 規(guī)范的 XML 文件,該格式可直接被 Excel、WPS 等辦公軟件識(shí)別,無(wú)需手動(dòng)構(gòu)建節(jié)點(diǎn),適合快速導(dǎo)出場(chǎng)景。

from spire.xls import *
from spire.xls.common import *

def csv_to_open_xml(csv_path, xml_path):
    """
    導(dǎo)出Open XML格式(兼容Excel等辦公軟件)
    :param csv_path: 輸入CSV文件路徑
    :param xml_path: 輸出Open XML文件路徑
    """
    try:
        # 1. 初始化Workbook對(duì)象,加載CSV文件
        workbook = Workbook()
        # 設(shè)置CSV編碼和分隔符
        workbook.LoadFromFile(csv_path, ",", 1, 1)
        
        # 2. 導(dǎo)出為Open XML格式
        workbook.SaveAsXml(xml_path)
        
        print(f"Open XML導(dǎo)出成功!文件已保存至:{xml_path}")
        
    except Exception as e:
        print(f"導(dǎo)出失敗:{str(e)}")
    finally:
        # 釋放Workbook資源
        workbook.Dispose()

# 調(diào)用Open XML導(dǎo)出函數(shù)
if __name__ == "__main__":
    csv_file = "data.csv"
    open_xml_file = "open_data.xml"
    csv_to_open_xml(csv_file, open_xml_file)

兩種方式核心對(duì)比

轉(zhuǎn)換方式核心特點(diǎn)適用場(chǎng)景
手動(dòng)構(gòu)建自定義 XML可自由定義節(jié)點(diǎn)名稱、層級(jí)、屬性,輸出極簡(jiǎn)的業(yè)務(wù) XML對(duì)接自定義 XML 接口、數(shù)據(jù)標(biāo)準(zhǔn)化、跨系統(tǒng)數(shù)據(jù)交互
導(dǎo)出Open XML一鍵導(dǎo)出,生成 Excel 兼容的 Open XML,無(wú)需手動(dòng)構(gòu)建節(jié)點(diǎn)快速導(dǎo)出、辦公系統(tǒng)兼容、無(wú)需自定義 XML 結(jié)構(gòu)的場(chǎng)景

關(guān)鍵代碼解釋

代碼段功能說(shuō)明
workbook.LoadFromFile(...)加載CSV文件,指定分隔符;
workbook.SaveAsXml(xml_path)直接將 Workbook 對(duì)象導(dǎo)出為 Open XML 格式;
ET.Element/ET.SubElement手動(dòng)構(gòu)建 XML 節(jié)點(diǎn)結(jié)構(gòu),完全自定義 XML 層級(jí)和名稱;
workbook.Dispose()釋放 Workbook 占用的內(nèi)存資源,避免內(nèi)存泄漏。

運(yùn)行結(jié)果說(shuō)明

自定義 XML 結(jié)果(custom_data.xml):結(jié)構(gòu)簡(jiǎn)潔,完全匹配業(yè)務(wù)定義,示例如下:

Open XML 結(jié)果(open_data.xml):符合Excel的Open XML規(guī)范,包含工作表、單元格、格式等完整元數(shù)據(jù),可直接用Excel打開(kāi),核心片段如下:

通過(guò)本文的教程,你可以根據(jù)實(shí)際需求選擇合適的轉(zhuǎn)換方式,無(wú)論是適配業(yè)務(wù)接口的自定義 XML,還是兼容辦公軟件的 Open XML,都能輕松實(shí)現(xiàn)。如果需要擴(kuò)展功能(如XML轉(zhuǎn)CSV、Excel轉(zhuǎn)XML),可參考官方文檔進(jìn)一步探索。

到此這篇關(guān)于使用Python實(shí)現(xiàn)將CSV轉(zhuǎn)換為XML格式的文章就介紹到這了,更多相關(guān)Python CSV轉(zhuǎn)XML內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django使用unittest模塊進(jìn)行單元測(cè)試過(guò)程解析

    Django使用unittest模塊進(jìn)行單元測(cè)試過(guò)程解析

    這篇文章主要介紹了Django使用unittest模塊進(jìn)行單元測(cè)試過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 用1行Python代碼識(shí)別身份證信息實(shí)例

    用1行Python代碼識(shí)別身份證信息實(shí)例

    這篇文章主要介紹了用1行Python代碼識(shí)別身份證信息實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • pipreqs?./?--encoding=utf-8?--force?報(bào)錯(cuò)問(wèn)題解決

    pipreqs?./?--encoding=utf-8?--force?報(bào)錯(cuò)問(wèn)題解決

    本文主要介紹了pipreqs?./?--encoding=utf-8?--force?報(bào)錯(cuò)問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • PyQt5 控件字體樣式等設(shè)置的實(shí)現(xiàn)

    PyQt5 控件字體樣式等設(shè)置的實(shí)現(xiàn)

    這篇文章主要介紹了PyQt5 控件字體樣式等設(shè)置的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Python實(shí)現(xiàn)繪制自定義形狀的詞云示例

    Python實(shí)現(xiàn)繪制自定義形狀的詞云示例

    這篇文章主要介紹了Python實(shí)現(xiàn)繪制自定義形狀的詞云示例,通過(guò)將一段文本中出現(xiàn)頻率高的單詞按其出現(xiàn)頻率大小以及顏色深淺排列成一個(gè)詞云圖形,從而更好地展示文本中的信息,需要的朋友可以參考下
    2022-10-10
  • Pyqt5中6種按鈕的具體使用

    Pyqt5中6種按鈕的具體使用

    本文主要介紹了Pyqt5中6種按鈕的具體使用,包括QPushButton、QRadioButton、QCheckBox、QToolButton等,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-09-09
  • Puppeteer使用示例詳解

    Puppeteer使用示例詳解

    這篇文章主要介紹了Puppeteer使用示例詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Python3指定路徑尋找符合匹配模式文件

    Python3指定路徑尋找符合匹配模式文件

    這篇文章主要介紹了Python3指定路徑尋找符合匹配模式文件,涉及Python文件查找與模式匹配的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Python+pandas數(shù)據(jù)分析實(shí)踐總結(jié)

    Python+pandas數(shù)據(jù)分析實(shí)踐總結(jié)

    這篇文章主要介紹了Python+pandas數(shù)據(jù)分析實(shí)踐總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2023-07-07
  • python如何通過(guò)正則匹配指定字符開(kāi)頭與結(jié)束提取中間內(nèi)容

    python如何通過(guò)正則匹配指定字符開(kāi)頭與結(jié)束提取中間內(nèi)容

    這篇文章主要介紹了python通過(guò)正則匹配指定字符開(kāi)頭與結(jié)束提取中間內(nèi)容的操作方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02

最新評(píng)論

佛山市| 吉安县| 开江县| 炎陵县| 湾仔区| 汝州市| 平江县| 扶风县| 阿尔山市| 隆尧县| 溧水县| 铜梁县| 喀什市| 仲巴县| 江孜县| 塔城市| 商洛市| 呼图壁县| 绥阳县| 宁德市| 西青区| 临泽县| 罗源县| 阿尔山市| 榆林市| 仁布县| 赤城县| 古蔺县| 无为县| 阿城市| 独山县| 瑞金市| 阿克| 云南省| 大同市| 奉化市| 澎湖县| 新民市| 合川市| 女性| 乌兰浩特市|