📜  如何在Python中将 Excel 转换为 XML 格式?

📅  最后修改于: 2022-05-13 01:55:41.253000             🧑  作者: Mango

如何在Python中将 Excel 转换为 XML 格式?

当需要将文件从一种格式转换为另一种格式时, Python被证明是一种强大的语言。它支持可用于轻松实现功能的工具。在本文中,我们将了解如何使用Python从 Excel 文件转换为可扩展术语 (XML) 文件。

需要的模块

  • OpenPyXL有助于与 Excel 文件交互。它可以读取和写入 .xlsx 和 .xlsm 文件,并且可以安装为:
  • Yattag是一个Python库,用于以非常可读的方式使用Python生成 HTML 或 XML 文档。这个 Yattag 库非常简单易用。如果您正在搜索任何库以便更轻松地生成 HTML 或 XML 文档。

需要的函数

  • 使用 OpenPyXl 的load_workbook()方法加载 Excel 文件的内容。
  • 迭代加载的文件并读取具有适当属性的数据Iter_rows()使用
  • 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)

输出: 输出文件