无法通过Google幻灯片API将表格图表插入演示文稿

时间:2018-05-17 08:37:54

标签: google-apps-script google-sheets-api google-slides-api

我正在尝试使用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表格图表插入幻灯片?

1 个答案:

答案 0 :(得分:3)

简短回答

使用getChartId()代替chartId

说明

EmbeddedChart.getId()返回一个仅在getId()上下文中有用的ID,这是一种不建议使用的服务,用于构建基于组件的UI。

但是,截至今天,UiApp类名为 getChartId() 的方法现在返回一个唯一的,稳定的整数标识图表。

如果您将代码中的一行更改为

EmbeddedChart

您的var chartId = chartSheet.getCharts()[0].getChartId(); 现在应该可以使用。

来源:https://issuetracker.google.com/issues/79784012#comment2

相关问题