Google apps script 如何插入importRange函数并防止值在实现后更改?
我有下面的代码,希望在实现导入功能后防止值发生更改!我已经尝试过setValue(),但它仍然会改变。除此之外,代码工作正常。你有什么想法吗Google apps script 如何插入importRange函数并防止值在实现后更改?,google-apps-script,importrange,Google Apps Script,Importrange,我有下面的代码,希望在实现导入功能后防止值发生更改!我已经尝试过setValue(),但它仍然会改变。除此之外,代码工作正常。你有什么想法吗 function Evaluation() { var sheet = SpreadsheetApp.getActiveSheet(); var newSpreadsheet = SpreadsheetApp.create("SheetEvaluation"); var newSheet = newSpreadsheet.getSheets()
function Evaluation() {
var sheet = SpreadsheetApp.getActiveSheet();
var newSpreadsheet = SpreadsheetApp.create("SheetEvaluation");
var newSheet = newSpreadsheet.getSheets()[0];
var range = sheet.getRange("A1:AX80");
var chart = sheet.getCharts()[0];
var newSpreadsheet = SpreadsheetApp.getActive();
newSheet.getRange('A1').activate();
newSheet.getCurrentCell().setValue('=ImportRange("LINK"; "Evaluation!A1:AX80")')
.setValue('=ImportRange("LINK"; "Evaluation!A1:AX80")');
chart = chart.modify()
.asComboChart()
.addRange(newSpreadsheet.getRange('B48:AX77'))
.addRange(newSpreadsheet.getRange('B78:AX78'))
.addRange(newSpreadsheet.getRange('B40:AX40'))
.setMergeStrategy(Charts.ChartMergeStrategy.MERGE_ROWS)
.setTransposeRowsAndColumns(true)
.setNumHeaders(1)
.setHiddenDimensionStrategy(Charts.ChartHiddenDimensionStrategy.IGNORE_BOTH)
.setOption('bubble.stroke', '#000000')
.setOption('useFirstColumnAsDomain', true)
.setOption('isStacked', 'absolute')
.setOption('series.1.type', 'LineChart')
.setOption('series.2.type', 'LineChart')
.setOption('series.3.type', 'LineChart')
.setOption('series.4.type', 'ColumnChart')
.setOption('series.5.type', 'ColumnChart')
.setOption('series.6.type', 'ColumnChart')
.setOption('series.7.type', 'ColumnChart')
.setOption('series.8.type', 'ColumnChart')
.setOption('series.9.type', 'ColumnChart')
.setOption('series.10.type', 'ColumnChart')
.setOption('series.11.type', 'ColumnChart')
.setOption('series.12.type', 'ColumnChart')
.setOption('series.13.type', 'ColumnChart')
.setOption('series.14.type', 'ColumnChart')
.setOption('series.15.type', 'ColumnChart')
.setOption('series.16.type', 'ColumnChart')
.setOption('series.17.type', 'ColumnChart')
.setOption('series.18.type', 'ColumnChart')
.setOption('series.19.type', 'ColumnChart')
.setOption('series.20.type', 'ColumnChart')
.setOption('series.21.type', 'ColumnChart')
.setOption('series.22.type', 'ColumnChart')
.setOption('series.23.type', 'ColumnChart')
.setOption('series.24.type', 'ColumnChart')
.setOption('series.25.type', 'ColumnChart')
.setOption('series.26.type', 'ColumnChart')
.setOption('series.27.type', 'ColumnChart')
.setOption('series.28.type', 'ColumnChart')
.setOption('height', 505)
.setOption('width', 817)
.setPosition(1, 3, 116, 4)
.build();
newSheet.insertChart(chart);
};
在Google工作表中,可以有动态值和静态值 在应用程序脚本和API端,您可以通过以下方式获取这些值:
- 公式-动态值
- 值-静态值
- 显示值-值的“静态”版本
function freezeImportRange() {
var importRangeUrl = "https://docs.google.com/spreadsheets/d/11lx7OPRXTV9xwqhCVcFPcpL43glyy_9y-PPIC1ADzhk/edit#gid=0";
var importRangeA1 = "Sheet1!A:C";
var importedValues = SpreadsheetApp.openByUrl(importRangeUrl).getRange(importRangeA1).getDisplayValues();
var newSheet = SpreadsheetApp.create("New Sheet");
var ss = newSheet.getSheetByName(newSheet.getSheets()[0].getName());
ss.getRange(1, 1, importedValues.length, importedValues[0].length).setValues(importedValues);
}
你能解释一下你想要实现什么吗?在设置导入公式后,getDisplayValues()并在工作表中设置这些值。这个@casper的代码是什么?你说的“在工作表中设置这些值”是什么意思?当你设置导入范围时,它会填充工作表。因此,通过使用,您可以获取它实际显示的值(因此您可以获取值而不是公式)。然后将这些显示值设置为图纸中的值时,会使动态数据成为静态数据。因此,它将不再改变。它可以工作,但你忘记了图表功能?var图表的效果如何?它工作正常,但你忘记了图表,必须插入!那会是什么样子?如果你答对了,我可以把你的答案标记为正确的!:)您可以使用与答案相同的逻辑插入图表。这不起作用:(它在旧工作表中插入图表,但不在新工作表中!@greenster10这似乎是一个新问题。您的问题“如何插入importRange函数并防止值在实现后更改?”得到了回答。