我在生成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***")