reporte.py 1.95 KB
import xlsxwriter
import time
class Reporte():
    COLUMNA = ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K",
    "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "Y", "Z")

    def __init__(self):
        self.fecha = time.strftime("%y%m%d")
        self.archivo = "tmp/reporte"+ self.fecha + ".xlsx"
        self.QUERY = []
        self.Encabesado = []
 
    def NombreArchivo(self, nombre):
        self.archivo = "tmp/"+ nombre + self.fecha + ".xlsx"

    def __generarLibro__(self):
        self.Libro = xlsxwriter.Workbook(self.archivo)
        self.bold = self.Libro.add_format({'bold': True})
        self.Hoja1 = self.Libro.add_worksheet("Totalizado")

    def __escribir_linea__(self, datos, linea):
        formato = self.Libro.add_format({'bg_color': '#e6ffff'})
        mod = linea % 2
        if mod > 0:
            formato = self.Libro.add_format({'bg_color': '#ffe6ff'})
        n = 0
        for dato in datos:
            celda = Reporte.COLUMNA[n] + str(linea)
            self.Hoja1.write(celda, str(dato), formato)
            n = n + 1
        self.ancho = Reporte.COLUMNA[n]

    def __escribir_global(self):
        n = 2
        for query in self.QUERY:
            self.__escribir_linea__(query, n)
            n = n + 1
        self.alto = str(n)

    def __ajuste__(self):
        Pn = self.ancho + self.alto
        #self.Hoja1.add_table("A1:"+Pn, {'autofilter': 0})
        print(Pn)

    def __encabesado__(self):
        print(self.Encabesado)
        if self.Encabesado == []:
            print("me salto los titulos")
            return()
        n = 0
        for celda in self.Encabesado:
            c = Reporte.COLUMNA[n] + "1"
            self.Hoja1.write(c, str(celda))
            n = n + 1

    def ArmarLibro(self, estado="1"):
        self.__generarLibro__()
        self.__escribir_global()
        self.__encabesado__()
        self.__ajuste__()
        self.fin()
        return(self.archivo)

    def fin(self):
        self.Libro.close()