¿Cómo convertir Excel a formato XML en Python?

Python demuestra ser un lenguaje poderoso cuando el requisito es convertir un archivo de un formato a otro. Admite herramientas que se pueden emplear para lograr fácilmente la funcionalidad. En este artículo, descubriremos cómo convertiremos un archivo de Excel a archivos de terminología extensible (XML) con Python. 

Módulos necesarios

  • OpenPyXL ayuda a interactuar con archivos de Excel. Puede leer y escribir en archivos .xlsx y .xlsm y puede instalarse como:

pip instalar openpyxl

  • Yattag es una biblioteca de Python para generar documentos HTML o XML con Python de una manera muy legible. Esta biblioteca Yattag es bastante simple y fácil de usar. Si está buscando alguna biblioteca para generar más fácilmente documentos HTML o XML.

pip instalar yattag

Función necesaria

  • Para cargar el contenido del archivo de Excel se utiliza el método load_workbook() de OpenPyXl.
  • Para iterar a través del archivo cargado y leer datos , se usa Iter_rows() con los atributos apropiados

Sintaxis: Iter_rows(min_col, min_row, max_col, max_row, valores_solo)

Parámetros:

  • min_col (int) – valor de columna más pequeño (índice basado en 1)
  • min_row (int) – valor de fila más pequeño (índice basado en 1)
  • max_col (int) – valor de columna más grande (índice basado en 1)
  • Max_row (int) : valor de fila más grande (índice basado en 1)
  • valores_solo (bool) : si solo se deben devolver los valores de celda
  • El método tagtext() es un método auxiliar que devuelve un triplete compuesto por:
    • La propia instancia de Doc
    • El método de etiqueta de la instancia de Doc
    • El método de texto de la instancia de Doc
  • El método asis agrega una string al documento sin ningún tipo de escape.
  • El método de etiqueta aceptará cualquier string como nombre de etiqueta.
  • La función de sangría toma una string que representa un documento XML o HTML y devuelve una versión bien sangrada de este documento.

Base de datos en uso: Haga clic aquí 

Para convertir datos de Excel a XML primero, debe leerse, el programa dado explica el mecanismo para leer datos.

Acercarse

  • Módulo de importación
  • Cargar archivo de Excel
  • Crear objeto de hoja
  • Iterar a través de filas

Ejemplo

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])

Ahora, una vez que hayamos terminado con la lectura de datos. Codifiquemos cómo convertir Excel a formato XML, 

Acercarse:

  • Módulo de importación
  • Leer datos
  • Crear página en formato XML
  • Anexar al archivo
  • Guardar el archivo

Ejemplo:

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 version="1.0" encoding="UTF-8"?>'
xml_schema = '<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"></xs: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)

Salida: salida.xml

Publicación traducida automáticamente

Artículo escrito por shubhanshuarya007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *