我想将图像插入谷歌表格,如所附的屏幕截图所示。
以下是我的代码,但失败了。
cell_list = getsheet.range('A24:I44')
with open(image_path, 'rb') as f:
image_data = f.read()
getsheet.update_cells(cell_list)
从您的以下回复来看,
是的,我想将图像放在单元格上,以便快速方便地查看图像。如何使用 Google Apps 脚本?可以和python脚本一起使用吗?
Google Apps Script 和 Python 的示例脚本如下。
请准备一个 Google 电子表格并打开脚本编辑器。
请将以下示例脚本复制并粘贴到脚本编辑器。
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.");
}
详细信息可以看官方文档。
请使用脚本编辑器进行设置。
https://script.google.com/macros/s/###/exec
。为了测试这一点,请使用以下 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”。
如果您的图像尺寸较大,则无法使用
insertImage
。请注意这一点。 参考(作者:我) 到时候请使用小尺寸的图片。
这是一个简单的示例脚本。所以,请根据您的实际情况进行修改。
当您修改Web Apps的Google Apps脚本时,请将部署修改为新版本。这样,修改后的脚本就会反映在Web Apps中。请注意这一点。
您可以在我的报告“重新部署 Web 应用程序而不更改新 IDE 的 Web 应用程序的 URL(作者:我)”中查看详细信息。