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

如何用Python在Excel工作表中插入文本框?已试多库未成功

解决Python向Excel插入文本框的问题

原代码存在的问题

  • 未初始化Workbook和Worksheet实例,直接调用sheet.add_shape会抛出未定义错误
  • 未导入GraphicalProperties类,代码执行会报错
  • 创建的Shape未指定为文本框类型,也未设置位置、大小和文本内容,无法生成有效文本框

使用openpyxl实现文本框插入

openpyxl需要通过指定形状类型为textbox,并配置文本内容、位置和大小来创建文本框:

from openpyxl import Workbook
from openpyxl.drawing.shape import Shape, GraphicalProperties
from openpyxl.drawing.text import RichText, Paragraph, CharacterProperties

# 创建工作簿和工作表
wb = Workbook()
ws = wb.active

# 创建文本框形状,指定类型为textbox
textbox = Shape(shape_type="textbox")

# 设置文本框位置和大小(单位:EMU,1英寸=914400 EMU)
textbox.width = 3*914400  # 3英寸宽
textbox.height = 1*914400  # 1英寸高
textbox.left = 1*914400  # 距离左侧1英寸
textbox.top = 1*914400  # 距离顶部1英寸

# 设置文本内容
rich_text = RichText()
p = Paragraph()
cp = CharacterProperties(size=1200)  # 字体大小12pt(1pt=100 EMU)
p.text = "这是用openpyxl插入的文本框"
p.rPr = cp
rich_text.append(p)
textbox.txBody = rich_text

# 添加文本框到工作表
ws.add_shape(textbox)

# 保存文件
wb.save("openpyxl_textbox.xlsx")

使用xlsxwriter实现文本框插入

xlsxwriter提供了更简洁的insert_textbox方法,直接指定位置、大小和文本即可:

import xlsxwriter

# 创建工作簿和工作表
wb = xlsxwriter.Workbook("xlsxwriter_textbox.xlsx")
ws = wb.add_worksheet()

# 插入文本框:参数依次为起始单元格、宽度、高度、文本
# 单元格位置支持A1格式或(row, col)元组
ws.insert_textbox("B2", 3, 1, "这是用xlsxwriter插入的文本框")

# 可选:设置文本框样式
textbox = ws.insert_textbox("B5", 3, 1, "带样式的文本框")
textbox.set_font_color("#FF0000")  # 设置字体颜色
textbox.set_fill("#FFFFCC")  # 设置背景填充色

# 保存文件
wb.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:05:02