如何从应用程序脚本更改 sheet 方向

How can I change sheet direction from apps script

我正在从应用程序脚本创建一个新的 sheet,我希望 sheet 的方向是从右到左(整个 sheet 而不是单元格自己)。有什么方法可以从应用程序脚本代码中做到这一点吗?

我相信你的目标如下。

  • 您想使用 Google Apps 脚本将 sheet 方向更改为 "right-to-left"。

为此,这个答案怎么样?在这个答案中,我想提出 2 种模式。

模式 1:

在此模式中,使用了 Spreadsheet 服务。

示例脚本:

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();  // Please set the sheet name.
  ss.getSheetByName("Sheet1").setRightToLeft(true);
}
  • 此时活动Spread"Sheet1"的sheet方向改为rightToLeft.
  • 使用setRightToLeft(false)时,"right-to-left"变为"left-to-right"。
  • 如果你想为活动Spreadsheet中的所有sheets改变它,你也可以使用下面的脚本。

    function myFunction() {
      const ss = SpreadsheetApp.getActiveSpreadsheet();
      ss.getSheets().forEach(s => s.setRightToLeft(true));
    }
    

模式 2:

在此模式中,使用了工作表 API。

示例脚本:

在您使用此脚本之前,please enable Sheets API at Advanced Google services

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName("Sheet1");  // Please set the sheet name.
  const resource = {requests: [{
    updateSheetProperties: {
      properties: {sheetId: sheet.getSheetId(), rightToLeft: true},
      fields: "rightToLeft"
    }
  }]};
  Sheets.Spreadsheets.batchUpdate(resource, ss.getId());
}
  • 此时活动Spread"Sheet1"的sheet方向改为rightToLeft.
  • 如果你想为活动Spreadsheet中的所有sheets改变它,你也可以使用下面的脚本。

    function myFunction() {
      const ss = SpreadsheetApp.getActiveSpreadsheet();
      const reqs = ss.getSheets().map(s => ({
        updateSheetProperties: {
          properties: {sheetId: s.getSheetId(), rightToLeft: true},
          fields: "rightToLeft"
        }
      }));
      const resource = {requests: [reqs]};
      Sheets.Spreadsheets.batchUpdate(resource, ss.getId());
    }
    

注:

  • 当要查看sheet方向是否为"right-to-left"时,可以用isRightToLeft()查看。 Ref 例如,当你想为 "Sheet1" 检查这个时,你可以使用下面的脚本。返回true时,sheet方向为"right-to-left".

    const check = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").isRightToLeft();
    console.log(check)
    
  • 当你想在 Google Spreadsheet 中更改很多 sheet 时,当使用 Sheets API 时,工艺成本或许可以降低。

参考文献: