异常:获取对象 SpreadsheetApp.CellImage 上的方法或属性 getContentUrl 时出现意外错误

问题描述 投票:0回答:1
我正在尝试从谷歌表格中提取单元格内图像,以便稍后粘贴到谷歌文档中。使用此方法时我收到错误,并且找不到任何有关此的文档。

function onClick(){ var app = SpreadsheetApp; var sheet = app.getActive().getSheetByName('FILE'); var image = sheet.getRange('D4').getValue(); var url = image.getContentUrl() Logger.log(url) }

异常:获取对象 SpreadsheetApp.CellImage 上的方法或属性 getContentUrl 时出现意外错误

我也尝试使用此方法使用

DocsServiceApp->

DocsServiceApp.openBySpreadsheetId(spreadsheetId) .getSheetByName("Sheet1") .getImages();
但这导致了另一个错误:

Exception: Request failed for https://www.googleapis.com returned code 403. Truncated server response: { "error": { "errors": [ { "domain": "global", "reason": "exportSizeLimitExceeded", "message": "This file is too large to be expo... (use muteHttpExceptions option to examine full response) at gToM(SpreadsheetAppp:171:25) at getImages(SpreadsheetAppp:34:14)
有谁知道如何修复这些错误之一,或者从谷歌表格中提取图像的不同方法?

javascript image google-apps-script google-sheets http-status-code-403
1个回答
0
投票

getContentUrl

根本不起作用,而且似乎没有任何解释或修复即将到来。然而,在收到一张包含超过 11,000 张需要提取的高分辨率单元内图像的表格后,我很高兴地说我终于发现了一种极其不方便的方法来从单元内图像中检索某种 url。

此解决方案的条件是图像所在的工作表(如果不是整个电子表格)必须通过

File > Share > Publish to web 实时发布到网络上。如果无法将工作表公开给公众,则另一种方法是将工作表下载为静态 HTML 文件,但这会带来自身的问题。

一旦将工作表转换为 HTML,Google 最终承认图像存储在

某处

,并且图像元素的 src 将指向以

=w150-h20
结尾的动态 URL。您必须从 HTML 标记中提取 URL,更改这些值以获得所需的图像大小,如果您想保存图像,则需要处理原始图像缓冲区,因为 URL 不指向静态资产。
    

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