python – 通过worksheet.insert_image插入时设置图像的宽度和高度


docs开始,insert_image函数采用以下选项:

{
    'x_offset':    0,
    'y_offset':    0,
    'x_scale':     1,
    'y_scale':     1,
    'url':         None,
    'tip':         None,
    'image_data':  None,
    'positioning': None,
}

问题是我需要插入的输入图像的大小可以变化,但是它们需要的单元格具有固定的大小.有可能以某种方式提供宽度和高度,让Excel将图像调整为提供的尺寸吗?

最佳答案 您可以使用XlsxWriter在外部或Excel中缩放图像,并根据单元格和图像的高度和宽度缩放x_scale和y_scale.

例如:

import xlsxwriter

workbook = xlsxwriter.Workbook('image_scaled.xlsx')
worksheet = workbook.add_worksheet()

image_width = 140.0
image_height = 182.0

cell_width = 64.0
cell_height = 20.0

x_scale = cell_width/image_width
y_scale = cell_height/image_height

worksheet.insert_image('B2', 'python.png',
                       {'x_scale': x_scale, 'y_scale': y_scale})

workbook.close()

像这样缩放它的优点是用户可以通过在Excel中将缩放设置回100%来恢复原始图像.

点赞