如何在Python中将 Excel 转换为 XML 格式?
当需要将文件从一种格式转换为另一种格式时, Python被证明是一种强大的语言。它支持可用于轻松实现功能的工具。在本文中,我们将了解如何使用Python从 Excel 文件转换为可扩展术语 (XML) 文件。
需要的模块
- OpenPyXL有助于与 Excel 文件交互。它可以读取和写入 .xlsx 和 .xlsm 文件,并且可以安装为:
pip install openpyxl
- Yattag是一个Python库,用于以非常可读的方式使用Python生成 HTML 或 XML 文档。这个 Yattag 库非常简单易用。如果您正在搜索任何库以便更轻松地生成 HTML 或 XML 文档。
pip install yattag
需要的函数
- 使用 OpenPyXl 的load_workbook()方法加载 Excel 文件的内容。
- 迭代加载的文件并读取具有适当属性的数据Iter_rows()使用
Syntax: Iter_rows(min_col, min_row, max_col, max_row, values_only)
Parameters:
- min_col (int) – smallest column value (1-based index)
- min_row (int) – smallest row value (1-based index)
- max_col (int) – largest column value (1-based index)
- Max_row (int) – largest row value (1-based index)
- values_only (bool) – whether only cell values should be returned
- tagtext()方法是一个辅助方法,它返回一个由以下组成的三元组:
- Doc实例本身
- Doc 实例的标签方法
- Doc 实例的text方法
- asis方法将一个字符串附加到文档中,没有任何形式的转义。
- tag方法将接受任何字符串作为标签名称。
- indent函数接受一个表示 XML 或 HTML 文档的字符串,并返回该文档的缩进版本。
使用中的数据库:点击这里
将Excel数据转换成XML需要先读取,给出的程序解释了读取数据的机制。
方法
- 导入模块
- 加载 Excel 文件
- 创建工作表对象
- 遍历行
例子
Python3
# Install the openpyxl library
from openpyxl import load_workbook
# Loading our Excel file
wb = load_workbook("demo_database.xlsx")
# creating the sheet 1 object
ws = wb.worksheets[0]
# Iterating rows for getting the values of each row
for row in ws.iter_rows(min_row=1, max_row=2, min_col=1, max_col=6):
print([cell.value for cell in row])
Python3
from openpyxl import load_workbook
from yattag import Doc, indent
# Load our Excel File
wb = load_workbook("demo_database.xlsx")
# Getting an object of active sheet 1
ws = wb.worksheets[0]
# Returning returns a triplet
doc, tag, text = Doc().tagtext()
xml_header = ''
xml_schema = ' '
# Appends the String to document
doc.asis(xml_header)
doc.asis(xml_schema)
with tag('People'):
for row in ws.iter_rows(min_row=2, max_row=10, min_col=1, max_col=6):
row = [cell.value for cell in row]
with tag("Person"):
with tag("First_Name"):
text(row[0])
with tag("Last_Name"):
text(row[1])
with tag("Gender"):
text(row[2])
with tag("Country"):
text(row[3])
with tag("Age"):
text(row[4])
with tag("Date"):
text(row[5])
result = indent(
doc.getvalue(),
indentation=' ',
indent_text=True
)
with open("output.xml", "w") as f:
f.write(result)
现在,一旦我们完成了读取数据。让我们编写如何将 Excel 转换为 XML 格式的代码,
方法:
- 导入模块
- 读取数据
- 创建 XML 格式页面
- 附加到文件
- 保存存档
例子:
蟒蛇3
from openpyxl import load_workbook
from yattag import Doc, indent
# Load our Excel File
wb = load_workbook("demo_database.xlsx")
# Getting an object of active sheet 1
ws = wb.worksheets[0]
# Returning returns a triplet
doc, tag, text = Doc().tagtext()
xml_header = ''
xml_schema = ' '
# Appends the String to document
doc.asis(xml_header)
doc.asis(xml_schema)
with tag('People'):
for row in ws.iter_rows(min_row=2, max_row=10, min_col=1, max_col=6):
row = [cell.value for cell in row]
with tag("Person"):
with tag("First_Name"):
text(row[0])
with tag("Last_Name"):
text(row[1])
with tag("Gender"):
text(row[2])
with tag("Country"):
text(row[3])
with tag("Age"):
text(row[4])
with tag("Date"):
text(row[5])
result = indent(
doc.getvalue(),
indentation=' ',
indent_text=True
)
with open("output.xml", "w") as f:
f.write(result)
输出: 输出文件