是否可以将带有宏的图表从Google表格导入到新文件中?

问题描述 投票:0回答:1

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

我已经尝试启动一个宏并打开一个新文件并复制该图,但是它只显示了这段代码,这是完全没有用的:

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

非常感谢您帮助我解决这个问题! :)

google-apps-script google-sheets google-sheets-formula google-sheets-macros
1个回答
0
投票

取决于您要如何在新创建的电子表格中插入图表/图表,我有两种使用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().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

© www.soinside.com 2019 - 2024. All rights reserved.