使用Python將JSON,XML和YAML數(shù)據寫入Excel文件
在當今數(shù)據驅動的技術生態(tài)中,JSON、XML和YAML作為主流結構化數(shù)據格式,因其層次化表達能力和跨平臺兼容性,已成為系統(tǒng)間數(shù)據交換的通用載體。然而,當需要將這類半結構化數(shù)據轉化為具備直觀可視化、動態(tài)計算和協(xié)作共享特性的載體時,Excel文件因其在商業(yè)分析、科研管理和跨部門協(xié)作中的不可替代性,成為數(shù)據落地的終極界面。通過Python實現(xiàn)這一轉換過程,不僅能突破不同數(shù)據范式間的語義鴻溝,更可構建自動化數(shù)據管道,在保留原始數(shù)據完整性的同時,賦予其動態(tài)排序、公式計算和數(shù)據透視等增值能力。本文將介紹如何使用Python導入JSON、XML和YAML格式數(shù)據到Excel文件中。
本文所使用的數(shù)據寫入方法需要用到Free Spire.XLS for Python,PyPI:pip install spire.xls.free。
如何使用Python寫入數(shù)據到Excel工作表
我們可以使用Free Spire.XLS for Python提供的類、屬性和方法來創(chuàng)建或載入Excel文件,并處理數(shù)據到單元格的寫入以及工作表格式設置等操作。以下是操作步驟示例:
- 創(chuàng)建Workbook實例以新建Excel工作簿(新建的工作簿會有三個默認工作表),或使用Workbook.LoadFromFile()方法載入已有工作簿。
- 使用Workbook.Worksheets.get_Item()方法獲取指定工作表,或使用Workbook.Worksheets.Add(sheetName: str)方法直接新建工作表。
- 通過json、xml.etree.ElementTree和yaml組件讀取相應數(shù)據。
- 使用Worksheet.Range.get_Item()方法獲取指定單元格為CellRange對象,并使用CellRange.Value屬性講數(shù)據寫入單元格中。
- 使用CellRange.BuiltInStyle、CellRange.ApplyStyle()、Worksheet.AutoFitColumn()等屬性和方法,對工作表及單元格格式進行設置。
- 使用Workbook.SaveToFile()方法保存Excel工作簿到文件。
用Python導入JSON數(shù)據到Excel工作表
JSON是一種輕量級數(shù)據交換格式,常用于Web應用中前后端數(shù)據傳輸。在Python中,我們可以使用標準庫中的json內置組件來解析JSON文件,并提取其中數(shù)據。提取到數(shù)據之后,我們可以使用Spire.XLS for Python將其寫入Excel工作表并自定義格式,完成JSON數(shù)據到Excel文件的導入。
代碼示例:
# 導入所需庫
from spire.xls import Workbook, FileFormat, BuiltInStyles
import json
# 讀取并解析JSON訂單數(shù)據
with open("E-Commerce Order Data.json", "r", encoding="utf-8") as f:
jsonData = json.load(f)
# 定義Excel列標題
headers = ["order_id", "customer", "order_date", "status", "total", "product", "quantity", "price"]
# 將嵌套的JSON結構轉換為扁平化表格數(shù)據
rows = []
for order in jsonData:
for item in order["items"]:
# 合并訂單主數(shù)據和商品明細數(shù)據
row = [
order["order_id"], order["customer"], order["order_date"],
order["status"], str(order["total"]), item["product"],
str(item["quantity"]), str(item["price"])
]
rows.append(row)
# 初始化Excel工作簿和工作表
workbook = Workbook()
workbook.Worksheets.Clear()
sheet = workbook.Worksheets.Add("Orders")
# 寫入表頭到首行
for col, header in enumerate(headers):
sheet.Range[1, col + 1].Value = header
# 寫入數(shù)據行內容
for row_idx, row_data in enumerate(rows):
for col_idx, value in enumerate(row_data):
sheet.Range[row_idx + 2, col_idx + 1].Value = value
# 設置表格樣式
sheet.Rows[0].BuiltInStyle = BuiltInStyles.Heading2 # 標題行樣式
for row in range(1, sheet.Rows.Count):
sheet.Rows[row].BuiltInStyle = BuiltInStyles.Accent2_40 # 數(shù)據行樣式
# 自動調整列寬
for col in range(sheet.Columns.Count):
sheet.AutoFitColumn(col + 1)
# 保存并釋放資源
workbook.SaveToFile("output/JSONToExcel.xlsx", FileFormat.Version2016)
workbook.Dispose()為了演示清晰,以上代碼直接基于已知的字段結構進行提取。在實際項目中,建議根據具體的數(shù)據格式動態(tài)處理字段,或增加容錯邏輯以應對結構變動。
JSON文件:

輸出Excel文件:

用Python導入XML數(shù)據到Excel工作表
XML是一種標記語言,適合表示結構復雜的數(shù)據,支持豐富的功能(如屬性、注釋)。同樣,Python標準庫也提供了xml.etree.ElementTree組件,可以幫助我們提取XML文件中的數(shù)據。我們可以使用該組件搭配Free Spire.XLS for Python來實現(xiàn)導入XML數(shù)據到Excel文件。
代碼示例:
# 導入XML處理庫和Excel操作庫
import xml.etree.ElementTree as ET
from spire.xls import Workbook, FileFormat, BuiltInStyles
# 解析XML變更日志文件
tree = ET.parse("Software Manual Changelog.xml")
root = tree.getroot()
# 定義表格列標題
headers = ["version", "date", "editor", "change"]
rows = []
# 提取并轉換XML數(shù)據結構
for entry in root.findall("entry"):
# 提取公共字段
version = entry.findtext("version", "")
date = entry.findtext("date", "")
editor = entry.findtext("editor", "")
# 展開多個變更條目為獨立行
for change in entry.find("changes").findall("change"):
rows.append([version, date, editor, change.text.strip()])
# 創(chuàng)建Excel工作簿
workbook = Workbook()
workbook.Worksheets.Clear()
sheet = workbook.Worksheets.Add("Changelog")
# 寫入表格標題行
for col, header in enumerate(headers):
sheet.Range[1, col + 1].Value = header
# 填充變更記錄數(shù)據
for row_idx, row_data in enumerate(rows):
for col_idx, value in enumerate(row_data):
sheet.Range[row_idx + 2, col_idx + 1].Value = value
# 應用樣式模板
sheet.Rows[0].BuiltInStyle = BuiltInStyles.Heading1 # 主標題樣式
for row in range(1, sheet.Rows.Count):
sheet.Rows[row].BuiltInStyle = BuiltInStyles.Accent1_40 # 交替行底色
# 自適應列寬設置
for col in range(sheet.Columns.Count):
sheet.AutoFitColumn(col + 1)
# 輸出文件并釋放資源
workbook.SaveToFile("output/XMLToExcel.xlsx", FileFormat.Version2016)
workbook.Dispose()
為了演示清晰,以上代碼直接基于已知的字段結構進行提取。在實際項目中,建議根據具體的數(shù)據格式動態(tài)處理字段,或增加容錯邏輯以應對結構變動。
XML文件:

輸出的Excel文件:

用Python導入YAML數(shù)據到Excel工作表
YAML是一種簡潔易讀的配置文件格式,常用于DevOps和項目配置。雖然YAML通常不用于存儲表格型數(shù)據,但很多結構化配置可轉換成Excel表做審閱、記錄或共享等,在這些實際場景中非常實用。我們可以使用Python標準庫中的yaml組件處理YAML文件數(shù)據,然后將其導入Excel文件中。
代碼示例:
# 導入YAML處理庫和Excel操作庫
import yaml
from spire.xls import Workbook, FileFormat, BuiltInStyles
# 加載CI/CD流水線配置文件
with open("CI CD Pipeline Configuration.yaml", "r", encoding="utf-8") as f:
yaml_data = yaml.safe_load(f) # 安全解析YAML內容
# 定義流水線分析報表列結構
headers = ["stage", "command", "output_file", "coverage", "environment"]
rows = []
# 展開流水線階段的多維數(shù)據
for stage in yaml_data["stages"]:
# 提取階段基礎信息
name = stage.get("name", "")
commands = stage.get("commands", [])
coverage = str(stage.get("coverage", "")) # 數(shù)值轉字符串
environment = stage.get("environment", "")
outputs = stage.get("artifacts", []) or [""] # 處理空輸出文件情況
# 按命令展開明細行
for i, cmd in enumerate(commands):
# 合并數(shù)據時保持指標數(shù)據首行展示
row = [
name,
cmd,
outputs[i] if i < len(outputs) else "", # 匹配命令與產出文件
coverage if i == 0 else "", # 覆蓋率僅首行保留
environment if i == 0 else "" # 環(huán)境信息僅首行保留
]
rows.append(row)
# 創(chuàng)建報表工作簿
workbook = Workbook()
workbook.Worksheets.Clear()
sheet = workbook.Worksheets.Add("Pipeline")
# 構建表頭結構
for col, header in enumerate(headers):
sheet.Range[1, col + 1].Value = header
# 填充動態(tài)生成的流水線數(shù)據
for row_idx, row_data in enumerate(rows):
for col_idx, value in enumerate(row_data):
sheet.Range[row_idx + 2, col_idx + 1].Value = str(value) # 強制轉為字符串格式
# 應用階梯式樣式方案
sheet.Rows[0].BuiltInStyle = BuiltInStyles.Heading4 # 深色漸變標題
for row in range(1, sheet.Rows.Count):
sheet.Rows[row].BuiltInStyle = BuiltInStyles.Accent2_40 # 淺色交替行背景
# 優(yōu)化列顯示寬度
for col in range(sheet.Columns.Count):
sheet.AutoFitColumn(col + 1)
# 持久化報表文件
workbook.SaveToFile("output/YAMLToExcel.xlsx", FileFormat.Version2016)
workbook.Dispose()
為了演示清晰,以上代碼直接基于已知的字段結構進行提取。在實際項目中,建議根據具體的數(shù)據格式動態(tài)處理字段,或增加容錯邏輯以應對結構變動。
YAML文件:

輸出的Excel文件:

本文演示如何導入數(shù)據到Excel文件,包括JSON、XML和YAML數(shù)據到Excel工作表的導入,提供步驟介紹及代碼示例。
到此這篇關于使用Python將JSON,XML和YAML數(shù)據寫入Excel文件的文章就介紹到這了,更多相關Python數(shù)據寫入Excel內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python + Requests庫爬取動態(tài)Ajax分頁數(shù)據的完整流程
本文介紹使用Python+Requests庫爬取動態(tài)Ajax分頁數(shù)據的完整流程,包含請求分析、參數(shù)模擬、翻頁邏輯實現(xiàn)、JSON解析及數(shù)據存儲,同時提供反爬優(yōu)化策略,適用于電商、新聞等動態(tài)加載內容的網站,感興趣的朋友一起看看吧2025-07-07
python實現(xiàn)圖片加文字水印OPenCV和PIL庫
本文來為大家介紹一下,使用python中的庫實現(xiàn)給圖片添加文字水印,openCV可以給圖片添加水印,如果要添加漢字水印那就要使用PIL庫2021-09-09
一文教你如何解決Python開發(fā)總是import出錯的問題
經常朋友碰到Python開發(fā)的過程中import包報錯的問題,所以本文將和大家介紹一下可編輯安裝(Editable Install)模式,可以輕松解決import出錯的問題,感興趣的可以了解下2025-05-05
使用Pycharm與conda配置Pyside環(huán)境并新建工程
本文主要介紹了使用Pycharm與conda配置Pyside環(huán)境并新建工程,文中通過圖文步驟介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-07-07
Python數(shù)據可視化實踐之使用Matplotlib繪制圖表
數(shù)據可視化是數(shù)據分析的重要環(huán)節(jié),通過將數(shù)據轉化為圖形,可以更直觀地展示數(shù)據特征和規(guī)律。Python中的Matplotlib庫是一個強大的數(shù)據可視化工具,本文將帶您了解Matplotlib的基本使用方法,以及如何繪制常見的圖表2023-05-05
使用NumPy進行數(shù)組數(shù)據處理的示例詳解
NumPy是Python中用于數(shù)值計算的核心包之一,它提供了大量的高效數(shù)組操作函數(shù)和數(shù)學函數(shù),可以支持多維數(shù)組和矩陣運算。本文主要為大家介紹了NumPy進行數(shù)組數(shù)據處理的具體方法,需要的可以參考一下2023-03-03

