Escribir Excel XSLR con Django

Para escribir en un excel, vamos a usar el siguiente paquete:

$ pip install XlsxWriter

Es importante notar que, este paquete es de Python y no específico a Django.

Usaremos la siguiente función para generar un documento excel:

excel\views.py

from django.shortcuts import render

import xlsxwriter

def excel_writer(request):
    filename="documents/LibroExcel.xlsx"

    data=[
        ["Nombre","Apellido","Edad"],
        ["Jon","Snow",33],
        ["Daenerys","Targaryen",25],
        ["Tyrion","Lannister",40],
        ["Jaime","Lannister",35],
        ["Cersei","Lannister",36]
    ]

    workbook = xlsxwriter.Workbook(filename)
    worksheet = workbook.add_worksheet("Hoja 1")

    for row in range(len(data)):
        for col in range(len(data[row])):
            worksheet.write(row, col, data[row][col])

    workbook.close()

    return render(request, 'csv.html')

Explicación del código anterior

Para generar un excel, es necesario indicar la ubicación (filename) y los datos (data); en esta oportunidad, los datos están representados en una matriz, ya que, la función de write() que permite escribir en el excel, recibe la posición de la fila, columna y datos; y es más fácil representarlos de esta manera.

Para trabajar con excel lo primero que tenemos que hacer es generar el archivo o workbook:

workbook = xlsxwriter.Workbook(filename)

Y una hoja de trabajo:

worksheet = workbook.add_worksheet("Hoja 1")

Esta función, recibe de manera opcional el nombre que quieras colocarle a la hoja, en este caso “Hoja 1”.

Por lo demás, lo único que hacemos es recorrer la matriz, escribir en el excel y cerrar el mismo

Acepto recibir anuncios de interes sobre este Blog.

Vamos a aprender a leer un archivo Excel con Django,

- Andrés Cruz

In english