首页 > 解决方案 > 从电子表格 B 访问电子表格 A

问题描述

假设我们有电子表格 B 的所有者,他想通过 Apps 脚本从电子表格 A 中提取数据。

如果 B 所有者没有对电子表格 A 的 VIEW/EDIT 访问权限,是否可以将数据从电子表格 A 提取到 B 中。所以目标是 B 可以通过 Apps 脚本从 A 提取数据,但无法访问A直接用链接。

    function syncDown1(){
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheetActive=ss.getActiveSheet();

      var masterSpreadsheet = SpreadsheetApp.openById("ID");
      var masterSheet = masterSpreadsheet.getSheetByName("Referral Clients");

      var lastRowMaster = masterSheet.getLastRow();
      var lastRowPersonal = sheetActive.getLastRow();

      sheetActive.getRange(4,1,lastRowPersonal,14).clear();

      var agentName = sheetActive.getRange(1,2).getValue();

      if (agentName == "") {
          Browser.msgBox("You have to enter agent's name in cell B2");
          return;
      }

      var agentArray = masterSheet.getRange(1,2,lastRowMaster,1).getValues();

      Logger.log(agentArray);

      //personal sheet iterator
      var j = 4;

      for (var i=1; i<=agentArray.length; i++) {


          if (agentArray[i] == agentName) {

             //column A master
             sheetActive.getRange(j,1,1,1).setValues(masterSheet.getRange(i+1,1,1,1).getValues());

             //column G master
             sheetActive.getRange(j,2,1,1).setValues(masterSheet.getRange(i+1,7,1,1).getValues());

             //column C, D, E, F master
             sheetActive.getRange(j,3,1,4).setValues(masterSheet.getRange(i+1,3,1,4).getValues());

             //column I master
             sheetActive.getRange(j,7,1,1).setValues(masterSheet.getRange(i+1,9,1,1).getValues());

             //column K, L, M, N, O master
             sheetActive.getRange(j,8,1,5).setValues(masterSheet.getRange(i+1,11,1,5).getValues());

             j = j + 1;

          }

      }
}

标签: google-apps-scriptgoogle-sheets

解决方案


推荐阅读