Openpyxl 图表大小设置:cm 与实际导出不一致的解决方法
在使用 Openpyxl 设置图表大小 (cm) 时,你可能会发现实际导出结果与预期不一致。这可能是由于 Openpyxl 中的默认单位不是 cm,而是以 poi 为单位(1 poi = 1/72 英寸)。因此,当你在 Openpyxl 中设置一个以 cm 为单位的大小时,它会以 poi 为单位进行转换,导致实际导出的大小与预期不一致。
为了解决这个问题,你可以将 cm 转换为 poi 并设置图表的大小。以下是一个示例代码:
import openpyxl
from openpyxl.drawing.image import Image
from openpyxl.utils.units import cm_to_EMU
# 创建一个新的工作簿
wb = openpyxl.Workbook()
# 获取活动工作表
ws = wb.active
# 创建一个图像对象
img = Image('image.png')
# 设置图像对象的大小(以cm为单位)
img.width = cm_to_EMU(5) # 5cm
img.height = cm_to_EMU(3) # 3cm
# 将图像对象插入到工作表中
ws.add_image(img, 'A1')
# 保存工作簿
wb.save('output.xlsx')
在上面的代码中,我们使用 cm_to_EMU 函数将 cm 转换为 poi,并将其设置为图像对象的大小。然后,我们将图像对象插入到工作表中,并保存工作簿。这样,导出的图像大小应该与预期的大小一致。
原文地址: https://www.cveoy.top/t/topic/qAcr 著作权归作者所有。请勿转载和采集!