繁体   English   中英

Google Sheets Script - 用于链接表格

[英]Google Sheets Script - for linking tables

我有一个 Google Slide 文档,其中包含链接到 Google 表格文档的图表和表格。

有时我需要创建两者的副本,然后需要将幻灯片图表和表格链接到新复制的表格。

我有以下脚本为图表执行此操作,但不适用于表格。 任何人都可以帮助我添加也将调整表格的代码吗?

非常感谢

//Intended for use immediately after duplicating both the slide/presentation and the spreadsheet
//For now you must manually enter / cut and paste the ID of both files directly below in the two Id variables inside the quotes

function myFunction() {
  //sheet and slide id's - the charts in the slide id listed here will be linked to the the sheet id listed here:
  var slideId="1lH8hT4sfTCsHBfTKP_ldA7hL-3y8hgpneWCAxqJJpX8"; // enter your slide id here
  var spreadsheetId="1xk9__Ftpic2piUD4zZtYkcaUSE4NaerRH0yV-JuJgb0"; // enter your sheet id here

  var ss2 = SpreadsheetApp.openById(spreadsheetId);
  var sheet2=ss2.getSheets()[0];
  var chart2=sheet2.getCharts()[0];
  Logger.log('spreadsheet2 name is ' + ss2.getName());

  //get all charts from all sheets of the spreadsheet copy
  var sheets2=ss2.getSheets();
  var allCharts=[];//keep track of all charts on all sheets of the spreadsheet
  var allChartsIds=[];//keep track of the ids for all the charts
  var chartsnum=0;
  for (var i = 0; i < sheets2.length; i++) {
    var curSheet2=sheets2[i];
    var charts2 = curSheet2.getCharts();
        for (var j = 0; j < charts2.length; j++) {
          var curChart2=charts2[j];
          allCharts[chartsnum]=curChart2;
          allChartsIds[chartsnum]=curChart2.getChartId();
          chartsnum++;
          Logger.log('\n chart2 Id is ' + curChart2.getChartId());
        }
  }

  //total number of charts in all sheets of the spreadsheet
  var lengthAllCharts=allCharts.length;

  var pres2 = SlidesApp.openById(slideId);
  Logger.log('pres2 name is ' + pres2.getName());

  var slides2=pres2.getSlides();

  for (var i = 0; i < slides2.length; i++) {
    var curSlide2=slides2[i];
    var charts2 = curSlide2.getSheetsCharts();
        for (var j = 0; j < charts2.length; j++) {
          var curChart2=charts2[j];
          var chartHeight=curChart2.getHeight();
          var chartWidth=curChart2.getWidth();
          var chartLeft=curChart2.getLeft();
          var chartTop=curChart2.getTop();

              for (var k = 0; k < lengthAllCharts; k++) {
                if (curChart2.getChartId()==allChartsIds[k]){
                  var chart2=allCharts[k]; 
                  break;
                } 
              }
          Logger.log('\n chart2 ObjId is ' + curChart2.getObjectId());
          Logger.log('\n chart2 ChartId is ' + curChart2.getChartId());
          Logger.log('\n chart2 Chart data ' + curChart2.getSpreadsheetId());
          curChart2.remove();
          curSlide2.insertSheetsChart(chart2, chartLeft, chartTop, chartWidth, chartHeight);
        }

  }

}```

我知道您想将表格副本中的表格插入幻灯片副本,如果是这种情况,则无法完成,因为没有方法支持此操作,您可以使用insertTable在另一张幻灯片中插入表格副本,但是不是工作表中的表格副本。 您可以打开一个功能请求以在 Google 的问题跟踪器中实现该行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM