我尝试使用 openpyxl 将 Excel 公式 =image(AC2) 插入工作簿的单元格 C2 中,知道单元格 AC2 中的值是图像原始 URL 的长文本。预期的结果是 =image(AC2) 的工作方式就像您在单元格 C2 的 Excel 工作簿中手动输入它一样(我尝试过,效果很好)。
我知道 Excel 函数 =IMAGE() 不被 openpyxl 识别。
>>> from openpyxl.utils import FORMULAE
>>> "IMAGE" in FORMULAE
False
所以我尝试了以下脚本,得到了以下结果:
脚本1
for row in range(2, worksheet.max_row + 1):
imgUrl_cell_reference = f"{get_column_letter(imgUrl_column_index)}{row}"
formula = f'=IMAGE({imgUrl_cell_reference})'
worksheet.cell(row=row, column=post_overview_column_index).value = formula
结果: =@IMAGE(AC2) 在单元格 C2 中
脚本2
for row in range(2, worksheet.max_row + 1):
imgUrl_cell_reference = f"{get_column_letter(imgUrl_column_index)}{row}"
formula = '=_xlfn.IMAGE({imgUrl_cell_reference})'
worksheet.cell(row=row, column=post_overview_column_index).value = formula
脚本3
for row in range(2, worksheet.max_row + 1):
imgUrl_cell_reference = f"{get_column_letter(imgUrl_column_index)}{row}"
formula = '=_xludf.IMAGE({imgUrl_cell_reference})'
worksheet.cell(row=row, column=post_overview_column_index).value = formula
我使用的是Python 3.11,openpyxl 3.1.2。以及 Microsoft 365 中最新版本的 Excel。
预先感谢您的帮助。
我实际上找到了问题的答案!希望可以帮助社区!
formula = f"=_xlfn.IMAGE({imgUrl_cell_reference})" worksheet.cell(row=row, column=post_overview_column_index).value = formula