изменить размер ячейки Excel, чтобы соответствовать изображению

1

когда я пишу изображение в файл excel, мне нужно сделать изображение подходящим для одной ячейки excel. Я знаю размер (в пикселях) изображения, но я понятия не имею, как использовать xlsxwriter для регулировки высоты и ширины ячейки excel, чтобы мое изображение идеально соответствовало ячейке.

Теги:
excel
xlsxwriter

1 ответ

1

Предоставляя пример того, как можно масштабировать изображение с помощью 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()

С ожидаемым выходом:

Изображение 174551

Ещё вопросы

Сообщество Overcoder
Наверх
Меню