Je définis la taille de ma colonne et de mes lignes en utilisant respectivement set_column et set_row, comme suit :
my_worksheet.set_column('A:KK', 17)
my_worksheet.set_row(0, 99.6)
J'ai ce code pour imprimer une image de taille arbitraire dans la cellule :
width, height = im.size
# Calculate scale: Problematic
x_scale = IMAGE_CELL_SIZE_PX[0]/float(width)
y_scale = (IMAGE_CELL_SIZE_PX[1] - 5.0)/float(height)
# Calculate offset: Problematic
x_offset = ((IMAGE_CELL_SIZE_PX[0] - width) / 2.0) / x_scale
y_offset = ((IMAGE_CELL_SIZE_PX[1] - 5 - height) / 2.0) / y_scale
worksheet.insert_image(row, col, image_path, {'x_offset': x_offset, 'y_offset': y_offset, 'x_scale': x_scale, 'y_scale': y_scale})
Le problème est qu'il ne fonctionne pas. La taille de l'image n'est pas bonne et les images sont la plupart du temps loin d'être centrées. C'est comme s'il me manquait un terme. Le problème principal est que je n'arrive pas à trouver un moyen de convertir les pixels en unités de longueur d'Excel et de xlsxwriter de manière robuste et indépendante de la machine.
Je ne peux définir la largeur des cellules que par le biais de set_column qui prend les unités excel et je connais les dimensions de l'image en pixels (grâce à Pillow Image.size). Apparemment, la transformation entre les deux dépend de la machine. Avez-vous une idée ?