导入数据谷歌电子表格。一列到第二个文件。我将使用gscript

时间:2014-09-25 18:37:35

标签: google-sheets

请帮忙。 我想要更频繁的更新,所以我想使用gscripts。

我需要检索此来源的值:

文件名:Peta Finance 名称表:数据 密钥:xxx111xxx 细胞:B15

目标是: 文件名:财务 名称表:Data1 密钥:xxx222xxx 细胞:A2

我尝试使用此代码,但它们不起作用:

function importData() {   
    var ss = SpreadsheetApp.getActiveSpreadsheet(); //source ss
    var sheet = ss.getSheetByName("Finance Peta"); //opens the sheet with your source data
    var values = sheet.getRange("C1").getValues(); //gets needed values
    var ts = SpreadsheetApp.openById("xxx"); //target ss - paste your key
    ts.getSheetByName("Finance").getRange("B15").setValues(values);       
}

1 个答案:

答案 0 :(得分:0)

有趣的是,前几天我问了类似的东西。编辑的代码如下:

 function importData() {
   var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data1 Key");

   var update = 'IMPORTRANGE("XXX","Data Key!B15"); //"XXX" is the spreadsheet key of your source [Peta Finance]

   sheet.clear(); //Be careful with this. It clears the whole sheet including formatting. This part might need playing around a bit with

   sheet.getRange("A2").setValue(update);
   Utilities.sleep(245); //This just gives the set number of milliseconds before it carries out it's next process (not necessarily required if this is only action)

};

然后我创建了一个菜单,允许我手动刷新数据或单元格。在同一个脚本文件中如下所示:

 function onOpen(){
   var spreadsheet = SpreadsheetApp.getActive();
   var menuItems = [
      {name: 'Import Data', functionName: 'importData'}
   ];
   spreadsheet.addMenu('Import', menuItems);
 }

然后,您可以添加定时触发器以将其设置为更新,但importrange应自动执行此操作。

要执行此操作,请单击“资源”>>当前项目的触发器>>设置一个>>

如下所示>>运行:importData事件:时间驱动>>选择更新之间的时间。