Google apps script 无法通过Google Slides API将图纸图表插入演示文稿
我正在尝试使用将图表插入谷歌幻灯片演示文稿 请求失败,出现错误: 执行失败:GoogleJsonResponseException:请求[0]处的值无效。创建工作表\u图表。图表\u id'(类型\u INT32),“u1935822328711” 示例代码:Google apps script 无法通过Google Slides API将图纸图表插入演示文稿,google-apps-script,google-sheets-api,google-slides-api,Google Apps Script,Google Sheets Api,Google Slides Api,我正在尝试使用将图表插入谷歌幻灯片演示文稿 请求失败,出现错误: 执行失败:GoogleJsonResponseException:请求[0]处的值无效。创建工作表\u图表。图表\u id'(类型\u INT32),“u1935822328711” 示例代码: var ss = SpreadsheetApp.getActiveSpreadsheet(); var chartSheet = ss.getSheets()[0]; // get chart id via Sheets API //
var ss = SpreadsheetApp.getActiveSpreadsheet();
var chartSheet = ss.getSheets()[0];
// get chart id via Sheets API
// returns string like 'u1935822328711'
var chartId = chartSheet.getCharts()[0].getId();
var slidesReqs = [];
slidesReqs.push({
createSheetsChart: {
objectId: 'someSlideChartId',
elementProperties: {
pageObjectId: slideId,
size: {
width: {
magnitude: (7/9)*900,
unit: 'PT'
},
height: {
magnitude: (7/9)*560,
unit: 'PT'
}
},
transform: {
scaleX: 1,
scaleY: 1,
translateX: 100000,
translateY: 100000,
unit: 'EMU'
}
},
spreadsheetId: ss.getId(),
chartId: chartId,
linkingMode: 'NOT_LINKED_IMAGE'
}
});
// throws error
// Execution failed: GoogleJsonResponseException: Invalid value at 'requests[0].create_sheets_chart.chart_id' (TYPE_INT32), "u1935822328711"
Slides.Presentations.batchUpdate({'requests': slidesReqs}, presentationFileId);
我看到它期望字段chartId
为整数,但GoogleSheetsAPI为图表id返回类似“u1935822328711”的字符串
如何将Google Sheets图表插入幻灯片?简短回答
使用而不是getId()
解释
返回一个ID,该ID仅在UiApp
上下文中有用,UiApp是一种用于构建基于组件的UI的弃用服务
但是,到今天为止,EmbeddedChart
类中有一个名为的方法,它返回一个唯一的、稳定的整数来标识图表
如果将代码中的一行更改为
var chartId = chartSheet.getCharts()[0].getChartId();
您的CreateSheetsChartRequest
现在应该可以工作了
来源:简短回答
使用而不是getId()
解释
返回一个ID,该ID仅在UiApp
上下文中有用,UiApp是一种用于构建基于组件的UI的弃用服务
但是,到今天为止,EmbeddedChart
类中有一个名为的方法,它返回一个唯一的、稳定的整数来标识图表
如果将代码中的一行更改为
var chartId = chartSheet.getCharts()[0].getChartId();
您的CreateSheetsChartRequest
现在应该可以工作了
来源:谢谢您提供的信息。这对我很有帮助。简单的文档是。我不明白这个用法。但从你的问答中,我可以知道这方面的细节。谢谢。@Tanaike在插入幻灯片之前,我们需要从工作表的
EmbeddedChart
中获取图表id,这就是隐藏方法所在的位置。插入到幻灯片后,可以使用您提供链接的方法。感谢您提供更多信息。我想在我的申请中利用这一点。谢谢你提供这些信息。这对我很有帮助。简单的文档是。我不明白这个用法。但从你的问答中,我可以知道这方面的细节。谢谢。@Tanaike在插入幻灯片之前,我们需要从工作表的EmbeddedChart
中获取图表id,这就是隐藏方法所在的位置。插入到幻灯片后,可以使用您提供链接的方法。感谢您提供更多信息。我想在我的申请中利用这一点。