是否有更快的方法使用 AppScript 对工作表进行排序?

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

我当前的代码如下。有其他方法可以更快吗?

 var tabs = ["A","B","C","D","E","F","G","H"] 

function sortie() {
  for (var i = 0; i < tabs.length; i++) {
    sortETF(tabs[i])
  };
};

function sortETF(tabs) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(tabs);
  var lr = sheet.getLastRow();
  var lc = sheet.getLastColumn();
  var srtrg = sheet.getRange(2, 1, lr-1, lc);
  
  srtrg.sort(6);
  
};
google-sheets google-apps-script
1个回答
0
投票

使用Sheets API时,可以降低流程成本。 参考(作者:我) 我认为 TheMaster 的评论是正确的。当你的脚本使用Sheets API修改后,下面的修改怎么样?

修改后的脚本:

在使用此脚本之前,请在高级 Google 服务中启用 Sheets API

function myFunction() {
  const tabs = ["A", "B", "C", "D", "E", "F", "G", "H"]; // This is from your script.

  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const requests = tabs.map(tab => {
    const sheet = ss.getSheetByName(tab);
    return {
      sortRange: {
        range: {
          sheetId: sheet.getSheetId(),
          startRowIndex: 1,
          endRowIndex: sheet.getLastRow(),
          startColumnIndex: 0,
          endColumnIndex: sheet.getLastColumn()
        },
        sortSpecs: [{ sortOrder: "ASCENDING", dimensionIndex: 5 }]
      }
    }
  });
  Sheets.Spreadsheets.batchUpdate({ requests }, ss.getId());
}
  • 运行此脚本时,
    tabs
    工作表的数据范围按“F”列排序。第一行被跳过。

参考资料:

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