entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Agregar imagenes en un archivo con xlsxwriter (Python)

actualmente me encuentro desarrollando unos informes para mi aplicación, para lo cual estoy generando los documentos Excel con xlsxwriter con Python, todo funciona bien hasta cierto punto, es decir:

yo creo una cabecera la cual seria la siguiente:

 def header(libro, fila, datos_usuarios):
    """libro = objeto xlsxwriter
        fila = fila actual del documento
        datos_usuarios = datos del usuario
    """
    if datos_usuarios['imagen'] != '':
        usuario.guardar_imagen(datos_usuarios['imagen'].image, user.userId)
        route = usuario.buscar_ruta_imagen(user.userId)

        libro.insert_image('A{0}'.format(fila), route, {
            'x_offset': 15,
            'y_offset': 15,
            'x_scale': 0.5,
            'y_scale': 0.5,
            'url': None,
            'tip': None,
            'image_data': None,
            'positioning': None,
        })
    else:
        print("Imagen: No se encontro ninguna imagen del usuario.")

el inconveniente que tengo, es el siguiente, cada que cambia de usuario se debe hacer el llamado a la foto, pero ocurre un inconveniente, cuando la fila del documento es mayor a 8800, cuando supera este numero, las imagenes se ubican en la ultima fila y sin importar que los datos se repitan algo asi:

Como ven las imagenes, una cabecera posee la imagen en su lugar

como se ve en la imagen (https://ibb.co/eMy728), la cabecera esta mostrando la imagen en su lugar, pero siempre al llegar a despues de esa linea, las imagenes ya no se vuelven a organizar como debian sino que se quedan en esa parte.

al momento de exportar esto y visualizarlo en Excel Office, se muestra de la manera correcta, cada imagen con su respectiva cabecera, pero en LibreOffice y OpenOffice, la imagen se muestra como en la imagen, alguno tiene una idea de como solucionar este inconveniente, Nota: intente pintando la imagen en la fila A9000, dando la posicion, pero de igual forma la ubica mas arriba....

1 Respuesta

2votos

FelipeMedel Puntos7400

Bueno con respecto a esta pregunta, no se encontro una solucción que me permitiera extender un poco los detalles con respecto a las filas del documento, este inconveniente solo pasa cuando el archivo se abre (ejecuta) en OpenOffice y en LibreOffice, si se abre el documento en Excel, se muestra de la manera que se espera (Correctamente), para evitar este problema con las personas que puedan ejecutar el archivo en estas otras dos aplicaciones, decidi limitarlo a 8000 filas, de la siguiente manera:

if row > 8000:
  lib += 1
  libros[lib] = documentExcel.add_worksheet('Hoja {0}'.format(lib + 1))
  libros[lib].set_tab_color('#16ADFE')
  row = header(libros[lib], documentExcel, 0, preview_data['information'])            

Row: me controla la cantidad de filas
Libros: es el Objeto de la Clase
lib: es el indicador del arreglo que me permite identificar el Tab
header: es la cabecera, la cual hace el llamado nuevamente cuando se cambia de registros
0: es (cero) el punto inicial cuando se pase a un siguiente Tab o pestaña o libro de calculo

1voto

Peter comentado

Gracias por compartir la solución!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta