是否可以使用宏将 google 工作表中的图表导入到新文件中?

Is there a possibility to import a diagram from google sheets into a new file with a macro?

我想使用宏将图形评估(图表)导入到新文件中。因此不应将评估插入关联文件中的新 sheet,而应创建一个全新的文件,然后在其中复制图形评估(以组合图的形式)。该文件应该是 Google 表格或 Excel 文件。组合图已经存在并位于 Google sheet 中,但它应该借助宏和相应的按钮自动复制到新文件中。

我已经尝试启动一个宏并打开一个新文件并复制图表,但它只显示了这段非常无用的代码:

function AuswertungTest() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('B25').activate();
};

如果你能帮我解决这个问题,那就太好了! :)

根据您想在新创建的电子表格中插入 diagram/chart 的方式,我有两种使用 Sheet [1] 和 EmbeddedChart [2] 方法的解决方案:

1) 如果要在插入之前将图表转换为图像:

function AuswertungTest() {
  //Sheet with diagram
  var sheet = SpreadsheetApp.getActiveSheet();

  //Create new Spreadsheet in Drive and get its first Sheet
  var newSpreadsheet = SpreadsheetApp.create("new spreadsheet");
  var newSheet = newSpreadsheet.getSheets()[0];

  //Get the first chart and convert it to an image blob
  var chart = sheet.getCharts()[0];
  chart = chart.getAs('image/jpeg');

  //Insert image in new spreadsheet
  newSheet.insertImage(chart, 2, 2)
};

2) 如果要按原样插入图表(图表将取决于新电子表格中的数据):

function AuswertungTest() {
  //Sheet with diagram
  var sheet = SpreadsheetApp.getActiveSheet();

  //Create new Spreadsheet in Drive and get its first Sheet
  var newSpreadsheet = SpreadsheetApp.create("new spreadsheet");
  var newSheet = newSpreadsheet.getSheets()[0];

  //Get the first chart and modify it to set the wanted position
  var chart = sheet.getCharts()[0];
  chart = chart.modify().addRange(newSheet.getRange("A1:B8")).setPosition(2, 2, 0, 0).build();

  //Insert chart in new spreadsheet
  newSheet.insertChart(chart); 
};

[1] https://developers.google.com/apps-script/reference/spreadsheet/sheet

[2] https://developers.google.com/apps-script/reference/spreadsheet/embedded-chart