以下示例设置假设有五张带有一些链接图表的幻灯片:
- 第一张幻灯片 - 主幻灯片标题/副标题(无图表)
- 第二张幻灯片 - 包含从数据透视表的图表链接的图表,该图表计算了研发人员以及他们计划从 Google 表单回复表中执行的操作
- 第三张幻灯片 - 包含从数据透视表的图表链接的图表,该图表计算 IME 员工以及他们计划从 Google 表单回复表中执行的操作
- 第四张幻灯片 - 包含从数据透视表的图表链接的图表,该图表计算 PMO 工作人员以及他们计划从 Google 表单回复表中执行的操作
- 第五张幻灯片 - 包含从数据透视表的图表链接的图表,该图表计算员工总数以及他们计划从 Google 表单回复表中执行的操作
下面的函数将使用链接图表更新幻灯片。
它需要高级 Google 服务:Google Slides API https://developers.google.com/slides/。
您可以从您的 Google Apps 脚本 IDE 中的Resources > Advanced Google Services... > Google Slides API 激活此高级功能。 API 版本设置为v1。如果不启用,脚本会报错Slides is not defined at updateSlideCharts(...)
有关 Google Slides API v1 中的 RefreshSheetsChartRequest 的更多详细信息,请参阅以下链接:https://developers.google.com/slides/reference/rest/v1/presentations/request#RefreshSheetsChartRequest
function updateSlideCharts() {
var presentation = SlidesApp.openById(YOUR_SLIDE_ID); //you need to get this slide id from your slide URL
//if empty
if (presentation == null) throw new Error('Presentation was not found');
Logger.log("%s id = %s", presentation.getName(), presentation.getId());
var slides = presentation.getSlides();
if (slides == null) throw new Error('Slides were not found');
Logger.log("Total of slides in %s: %d", presentation.getName(), slides.length);
var presentationId = presentation.getId();
var presentationRndChartId = slides[1].getSheetsCharts()[0].getObjectId();
Logger.log("ObjectId of \"%s\": %s", slides[1].getSheetsCharts()[0].getTitle(), presentationRndChartId);
var presentationImeChartId = slides[2].getSheetsCharts()[0].getObjectId();
Logger.log("ObjectId of \"%s\": %s", slides[2].getSheetsCharts()[0].getTitle(), presentationImeChartId);
var presentationPmoChartId = slides[3].getSheetsCharts()[0].getObjectId();
Logger.log("ObjectId of \"%s\": %s", slides[3].getSheetsCharts()[0].getTitle(), presentationPmoChartId);
var presentationStaffChartId = slides[4].getSheetsCharts()[0].getObjectId();
Logger.log("ObjectId of \"%s\": %s", slides[4].getSheetsCharts()[0].getTitle(), presentationStaffChartId);
var requests = [{
refreshSheetsChart: {
objectId: presentationRndChartId
}
}];
// Execute the request.
var batchUpdateResponse = Slides.Presentations.batchUpdate({
requests: requests
}, presentationId);
Logger.log('Refreshed linked Sheets charts for \"%s\"', slides[1].getSheetsCharts()[0].getTitle());
requests = [{
refreshSheetsChart: {
objectId: presentationImeChartId
}
}];
// Execute the request.
batchUpdateResponse = Slides.Presentations.batchUpdate({
requests: requests
}, presentationId);
Logger.log('Refreshed linked Sheets charts for \"%s\"', slides[2].getSheetsCharts()[0].getTitle());
requests = [{
refreshSheetsChart: {
objectId: presentationPmoChartId
}
}];
// Execute the request.
batchUpdateResponse = Slides.Presentations.batchUpdate({
requests: requests
}, presentationId);
Logger.log('Refreshed linked Sheets charts for \"%s\"', slides[3].getSheetsCharts()[0].getTitle());
var requests = [{
refreshSheetsChart: {
objectId: presentationStaffChartId
}
}];
// Execute the request.
var batchUpdateResponse = Slides.Presentations.batchUpdate({
requests: requests
}, presentationId);
Logger.log('Refreshed linked Sheets charts for \"%s\"', slides[4].getSheetsCharts()[0].getTitle());
}