You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python xlsxwriter如何调整图片插入点 实现图片向上扩展底部固定

xlsxwriter插入图片坐标调整及底部固定实现

坐标参考示意图

坐标参数规则

  • xlsxwriter的insert_image(row, col, image_path, options)方法的行、列坐标均从0开始计数,仅支持非负整数,因此(1,0)是合法参数(表示将图片左上角锚定在第2行、第1列的单元格位置),但(1,-1)为非法参数,无法直接使用。

底部固定向上扩展的实现方案

要实现图片底部位置固定、高度增加时向上延伸的需求,可通过动态计算左上角锚点坐标的方式实现,操作步骤如下:

  1. 借助Pillow库获取动态生成图片的原始像素高度,结合你设置的y_scale缩放比例计算最终显示高度
  2. 提前确定需要固定的图片底部对应的行号,结合单行行高(默认行高约为15像素,若自定义了行高可通过worksheet.row_height(row)获取对应行的高度),倒推图片左上角的行坐标
  3. 插入图片时可配合object_position参数设置锚定规则,避免单元格调整时图片位置偏移

代码示例

from PIL import Image
import os
from django.conf import settings

# 读取图片并计算缩放后的实际高度
img_path = str(os.path.join(settings.BASE_DIR,'c_acwc_total_df.png'))
with Image.open(img_path) as img:
    original_height = img.height
scaled_height = original_height * 0.7

# 计算左上角插入行:假设需要固定图片底部在第50行,默认行高为15像素
default_row_height = 15
img_occupy_rows = scaled_height / default_row_height
insert_row = 50 - img_occupy_rows
insert_col = 26

# 插入图片,object_position=3表示大小和位置不随单元格变动
worksheet1.insert_image(
    insert_row, 
    insert_col, 
    img_path, 
    {
        'x_scale': 0.7, 
        'y_scale': 0.7,
        'object_position': 3
    }
)

参数说明

object_position可选值及对应效果:

  • 1:图片大小和位置随单元格调整而变动
  • 2:图片大小固定,位置随单元格调整而变动
  • 3:图片大小和位置均固定,不受单元格调整影响

内容的提问来源于stack exchange,提问作者Prinjal Boruah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:15:00