首页 > 解决方案 > 如何从应用程序脚本更改工作表方向

问题描述

我正在从应用程序脚本创建一个新工作表,并且我希望该工作表的方向是从右到左(整个工作表而不是单元格本身)。有没有办法从应用程序脚本代码中做到这一点?

标签: google-apps-scriptgoogle-sheetsright-to-left

解决方案


我相信你的目标如下。

  • 您想使用 Google Apps 脚本将工作表方向更改为“从右到左”。

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

模式一:

在此模式中,使用了电子表格服务。

示例脚本:

function myFunction() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();  // Please set the sheet name.
  ss.getSheetByName("Sheet1").setRightToLeft(true);
}
  • 在这种情况下,活动电子表格中“Sheet1”的工作表方向更改为rightToLeft
  • 使用时setRightToLeft(false),“从右到左”变为“从左到右”。
  • 如果要为活动电子表格中的所有工作表更改它,还可以使用以下脚本。

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

模式二:

在此模式中,使用了 Sheets API。

示例脚本:

在使用此脚本之前,请在 Advanced Google services 中启用 Sheets API

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());
}
  • 在这种情况下,活动电子表格中“Sheet1”的工作表方向更改为rightToLeft
  • 如果要为活动电子表格中的所有工作表更改它,还可以使用以下脚本。

    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());
    }
    

笔记:

  • 当您要检查纸张方向是否为“从右到左”时,您可以使用 进行检查isRightToLeft()Ref例如,当您要检查“Sheet1”时,可以使用以下脚本。返回时true,纸张方向为“从右到左”。

    const check = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").isRightToLeft();
    console.log(check)
    
  • 当您想为 Google 电子表格中的大量表格更改此设置时,使用表格 API 时,可能会降低流程成本。

参考:


推荐阅读