我正在尝试使用CreateSheetsChartRequest
将图表插入Google幻灯片演示文稿。
请求失败并显示错误:
执行失败:GoogleJsonResponseException:'requests [0] .create_sheets_chart.chart_id'(TYPE_INT32),“u1935822328711”
中的值无效
示例代码:
custom_id
我看到CreateSheetsChartRequest
期望字段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);
为整数,但Google表格API会返回字符串,如图表ID为“u1935822328711”。
如何将Google表格图表插入幻灯片?
答案 0 :(得分:3)
使用getChartId()
代替chartId
。
EmbeddedChart.getId()
返回一个仅在getId()
上下文中有用的ID,这是一种不建议使用的服务,用于构建基于组件的UI。
但是,截至今天,UiApp
类名为 getChartId()
的方法现在返回一个唯一的,稳定的整数标识图表。
如果您将代码中的一行更改为
EmbeddedChart
您的var chartId = chartSheet.getCharts()[0].getChartId();
现在应该可以使用。