xlsxwriter的问题“工作簿。关闭()“python库

2024-05-29 03:09:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我在生成excel文件时遇到以下问题:“[Errno 2]没有这样的文件或目录:'Reportes/Reportes_enviados_20180806.xls”,其中“Reports”文件夹存在,并且拥有所有权限。当我知道woorbook.close()是这个问题发生的地方,知道错误在哪里吗?在

def generarReporte(regsCurRegx):
    escribirLog("***Se Inicia la Generación del Excel***")

    #Crea a sobreescribe el excel en la ruta especificada
    workbook = xlsxwriter.Workbook('/sysx/proyectos/afore/felicitacioncumpleafoauto/Reportes/Reportes_enviados_'+time.strftime("%Y")+time.strftime("%m")+time.strftime("%d")+'.xls')
    worksheetReg = workbook.add_worksheet(u'Reportes_enviados')

    #Crea la cabecera del excel
    cabReg = ('Fecha', 'Nombre', 'Apellido paterno', 'Apellido materno', 'CURP', 'NSS',
            'Correo', u'Contactación', 'Forma de envio', u'Motivo no contactación')

    cont_reg = 0

    #Da estilo a la cabecera
    formatTitle = workbook.add_format()
    formatTitle.set_font_size(10)
    formatTitle.set_font_name('Arial')
    formatTitle.set_bold()
    formatTitle.set_align('center')
    formatTitle.set_align('vcenter')
    formatTitle.set_bg_color('green')
    formatTitle.set_font_color('white')

    #Da estilos a las celdas
    format = workbook.add_format()
    format.set_font_size(10)
    format.set_font_name('Arial')
    format.set_align('center')

    worksheetReg.set_column(0, 0, 17)
    worksheetReg.set_column(1, 10, 30)
    worksheetReg.set_row(0, 20)
    # Se inicia desde la primera celda. Las filas y columnas son inicializadas en cero
    row = 0
    col = 0

    # for para escribir el encabezado
    for nomCol in (cabReg):
        worksheetReg.write(row, col, nomCol, formatTitle)
        col += 1

    escribirLog("Se escribe el encabezado en el excel")

    row+=1
    col=0


    for fecha,nombre,paterno,materno,curp,nss,correo,enviocorreo,formaenvio,causa in regsCurRegx.fetchall():    

        #LLena las celdas del excel
        worksheetReg.write(row, 0, fecha, format)
        worksheetReg.write(row, 1, nombre.decode('latin-1'), format)
        worksheetReg.write(row, 2, paterno.decode('latin-1'), format)
        worksheetReg.write(row, 3, materno.decode('latin-1'), format)
        worksheetReg.write(row, 4, curp, format)
        worksheetReg.write(row, 5, nss, format)
        worksheetReg.write(row, 6, correo, format)
        if enviocorreo == 0:
            worksheetReg.write(row, 7, "NO", format)
        else:
            worksheetReg.write(row, 7, "SI", format)
        worksheetReg.write(row, 8, formaenvio.decode('latin-1'), format)
        worksheetReg.write(row, 9, causa.decode('latin-1'), format)
        row+=1

    escribirLog("Se escribe toda la información en el excel. No. de Registros[%i]" % row)
    workbook.close()

    escribirLog("***Termina la generación del Excel***")

Tags: formatexcelellawriterowworkbookfont

热门问题