有。 我想使用openpyxl更改图片的大小。 宽度= 11.21厘米。 高度= 7.69厘米。
或者我要更改与单元格相同的图片大小。
我的代码如下。它使尺寸非常小的图片。 你能帮我吗?
from openpyxl import load_workbook
from openpyxl.drawing.image import Image
filename="1.xlsx"
wb = load_workbook(filename)
ws = wb.worksheets[0]
img = Image('13.5.jpg')
img.width = 11.21
img.height = 7.69
ws.add_image(img, 'B13')
wb.save('1.xlsx')
print("done")
答案 0 :(得分:1)
为了澄清其他问题(keineahnung2345具有正确的帖子,我的只是补充),这是设置图像大小的方法:
img = openpyxl.drawing.image.Image('filelocation.png')
img.height = # insert image height in pixels as float or int (e.g. 305.5)
img.width= # insert image width in pixels as float or int (e.g. 405.8)
img.anchor = 'A1' # where you want image to be anchored/start from
sheet.add_image(img) # adding in the image
同样,请务必检查dpi(它是像素数量的乘数)。 您可以通过在excel中单击图像并检查属性来检查图像大小,该属性应为英寸或厘米。
对于使用英寸的任何人,这是英寸到像素的转换器: https://www.unitconverters.net/typography/inch-to-pixel-x.htm
可以从keineahnung2345的选定答案中找到厘米转换器。
答案 1 :(得分:0)
openpyxl.drawing.image.Image
基于PIL.Image
。在PIL.Image
中,图像尺寸的单位是像素。因此,您首先应该计算图像的宽度和高度(以像素为单位)。
公式为(参考:Pixel to Centimeter?):
像素= cms * dpi / 2.54
您可以通过img.info['dpi']
获得该图像的dpi。