openpyxl:'@'插入到 =image() Excel 函数前面

问题描述 投票:0回答:1

我尝试使用 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

结果: 当我尝试打开 Excel 文件时出现错误消息:Excel file error message

脚本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

结果: 当我尝试打开 Excel 文件时出现错误消息:Excel file error message

我使用的是Python 3.11,openpyxl 3.1.2。以及 Microsoft 365 中最新版本的 Excel。

预先感谢您的帮助。

openpyxl
1个回答
0
投票

我实际上找到了问题的答案!希望可以帮助社区!

formula = f"=_xlfn.IMAGE({imgUrl_cell_reference})" worksheet.cell(row=row, column=post_overview_column_index).value = formula 
© www.soinside.com 2019 - 2024. All rights reserved.