使用 gspread 在 Google 表格特定单元格中插入图像

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

我想将图像插入谷歌表格,如所附的屏幕截图所示。

以下是我的代码,但失败了。

cell_list = getsheet.range('A24:I44')
with open(image_path, 'rb') as f:
    image_data = f.read()
getsheet.update_cells(cell_list)

enter image description here

python google-sheets gspread insert-image
1个回答
0
投票

从您的以下回复来看,

是的,我想将图像放在单元格上,以便快速方便地查看图像。如何使用 Google Apps 脚本?可以和python脚本一起使用吗?

Google Apps Script 和 Python 的示例脚本如下。

用途:

1.准备电子表格

请准备一个 Google 电子表格并打开脚本编辑器。

2.谷歌应用脚本

请将以下示例脚本复制并粘贴到脚本编辑器。

function doPost(e) {
  if (!e || !e.postData) {
    console.error("No event object");
    return ContentService.createTextOutput("No event object");
  }
  const { spreadsheetId, sheetName, row, column, imageData, mimeType } = JSON.parse(e.postData.contents);
  SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName).insertImage(`data:${mimeType};base64,${imageData}`, column, row);
  return ContentService.createTextOutput("Done.");
}

3.部署网络应用程序

详细信息可以看官方文档

请使用脚本编辑器进行设置。

  1. 在脚本编辑器中,请点击脚本编辑器右上角的“单击部署”->“新建部署”。
  2. 请点击“选择类型”->“Web App”。
  3. 请在“部署配置”字段中输入Web App的信息。
  4. 请为“执行为”选择“我”
  5. 请为“谁有权访问该应用程序:”选择“任何人”
    • 在此示例中,作为一种简单的方法,无需访问令牌即可完成请求。
  6. 请点击“部署”按钮。
  7. 在脚本编辑器中,请点击脚本编辑器右上角的“单击部署”->“测试部署”。
  8. 复制 Web 应用程序 URL。就像
    https://script.google.com/macros/s/###/exec

4.测试

为了测试这一点,请使用以下 Python 脚本。请将您的 Web 应用程序 URL 设置为

webAppsUrl
。并且,请将 PNG 图像的文件和路径设置为
file
,您的电子表格 ID 和工作表名称为
obj

如果您的图片是Jpeg,请将

mimeType
修改为
image/jpeg

import base64
import json
import requests


file = "sample.png"
webAppsUrl = "https://script.google.com/macros/s/###/exec"
obj = {
    "spreadsheetId": "###",
    "sheetName": "Sheet1",
    "row": "2",
    "column": "2",
    "imageData": base64.b64encode(open(file, 'rb').read()).decode('ascii'),
    "mimeType": "image/png"
}
res = requests.post(webAppsUrl, data=json.dumps(obj))
print(res.text)

运行此脚本时,当正确部署上述 Web 应用程序时,会将图像放置在单元格上作为锚单元“B2”。

注:

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.