在许多不同的表格(google-工作表)中使用来自一个 Google 脚本的函数
Use Functions from one Google Script in many different tables (google-sheets)
我写了 google-脚本。在那个脚本中,我有一个函数需要在 250 多个不同的 tables (google-sheets) 中使用。问题是 - 我怎样才能让它在每个 table 中都可以访问?
要使脚本或自定义函数在其他 Google 表格中可用,请将其发布为库。
布鲁斯·麦克弗森 (Bruce Mcpherson) 对如何做到这一点有很好的post:http://ramblings.mcpher.com/Home/excelquirks/gooscript/lib
是的,有可能。
两个选项:
- 创建一个调用 250 多个电子表格的 Apps 脚本项目,进行操作并更新产生结果的每个电子表格。
在此您可以找到一系列教程,以开始使用应用程序脚本。
https://developers.google.com/apps-script/articles/tutorials
- 创建一个可以从电子表格的任何单元格调用的函数,就像调用任何其他默认函数(如 SUM())一样
在此文档中,您将找到有关如何执行第二个选项的说明。
https://developers.google.com/apps-script/guides/sheets/functions#arguments
好的,我找到了解决方案。在我的例子中,我需要更改的文件位于不同的文件夹中并且具有相似的名称
// function that i need to execute
function updatePrices(sheetId){
// do some staff
var activeSpreadsheet = SpreadsheetApp.openById(sheetId);
var histPricesSheet = activeSpreadsheet.getSheetByName(someSheetName);
....
var cell = histPricesSheet.getRange(range);
cell.setValues(someData);
}
function walkFolders(folderId){
// function that walk by folders and get ids of spradsheeds
and call func that I need in each spradsheed that I need
var fin_fold = DriveApp.getFolderById(folderId);
var folders = fin_fold.getFolders();
while (folders.hasNext()) {
var folder = folders.next();
var files = folder.searchFiles('title contains "карточка"');
while (files.hasNext()){
var file = files.next();
updatePrices(file.getId()); // call my function to every spreadsheet
Logger.log("обновлено");
}
}
}
walkFolders("folder ID wich contain folders with files to change");
我写了 google-脚本。在那个脚本中,我有一个函数需要在 250 多个不同的 tables (google-sheets) 中使用。问题是 - 我怎样才能让它在每个 table 中都可以访问?
要使脚本或自定义函数在其他 Google 表格中可用,请将其发布为库。
布鲁斯·麦克弗森 (Bruce Mcpherson) 对如何做到这一点有很好的post:http://ramblings.mcpher.com/Home/excelquirks/gooscript/lib
是的,有可能。
两个选项:
- 创建一个调用 250 多个电子表格的 Apps 脚本项目,进行操作并更新产生结果的每个电子表格。
在此您可以找到一系列教程,以开始使用应用程序脚本。 https://developers.google.com/apps-script/articles/tutorials
- 创建一个可以从电子表格的任何单元格调用的函数,就像调用任何其他默认函数(如 SUM())一样
在此文档中,您将找到有关如何执行第二个选项的说明。 https://developers.google.com/apps-script/guides/sheets/functions#arguments
好的,我找到了解决方案。在我的例子中,我需要更改的文件位于不同的文件夹中并且具有相似的名称
// function that i need to execute
function updatePrices(sheetId){
// do some staff
var activeSpreadsheet = SpreadsheetApp.openById(sheetId);
var histPricesSheet = activeSpreadsheet.getSheetByName(someSheetName);
....
var cell = histPricesSheet.getRange(range);
cell.setValues(someData);
}
function walkFolders(folderId){
// function that walk by folders and get ids of spradsheeds
and call func that I need in each spradsheed that I need
var fin_fold = DriveApp.getFolderById(folderId);
var folders = fin_fold.getFolders();
while (folders.hasNext()) {
var folder = folders.next();
var files = folder.searchFiles('title contains "карточка"');
while (files.hasNext()){
var file = files.next();
updatePrices(file.getId()); // call my function to every spreadsheet
Logger.log("обновлено");
}
}
}
walkFolders("folder ID wich contain folders with files to change");