когда я пишу изображение в файл excel, мне нужно сделать изображение подходящим для одной ячейки excel. Я знаю размер (в пикселях) изображения, но я понятия не имею, как использовать xlsxwriter для регулировки высоты и ширины ячейки excel, чтобы мое изображение идеально соответствовало ячейке.
Предоставляя пример того, как можно масштабировать изображение с помощью PIL (Python Imaging Library - Link to docs), а затем поместить его в файл.xlsx с помощью xlsxwriter. В этом примере вы можете увидеть, как вы можете настроить размер изображения с помощью PIL, а затем с помощью worksheet.set_column()
и worksheet.set_row()
вы можете настроить размер ячейки, чтобы разместить размер вашего изображения.
Таким образом, вы можете настроить размер изображения, отрегулировать размер ячейки excel или сделать то же самое. Для правильного соответствия может потребоваться небольшое тестирование.
Чтобы сделать этот ответ воспроизводимым, я использовал модуль urllib для загрузки изображения в локальный каталог (этот модуль не нужен, если вы используете локальный файл).
import urllib.request
from PIL import Image
import xlsxwriter
import os
url = 'https://upload.wikimedia.org/wikipedia/en/thumb/4/43/Ipswich_Town.svg/255px-Ipswich_Town.svg.png'
urllib.request.urlretrieve(url, "local_100_perc.png")
with Image.open("local_100_perc.png") as img:
width_100 = img.width
height_100 = img.height
width_30 = int(round(width_100 * 0.3, 0))
img = Image.open('local_100_perc.png')
wpercent = (width_30/float(width_100))
hsize = int((float(height_100)*float(wpercent)))
img = img.resize((width_30,hsize), Image.ANTIALIAS)
img.save('local_30_perc.png')
workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
worksheet.set_column('A:B', 10)
worksheet.set_row(1, 70)
worksheet.write('A2', 'Image:')
worksheet.insert_image('B2', 'local_30_perc.png')
workbook.close()
С ожидаемым выходом: