如何从应用程序脚本更改 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 时,工艺成本或许可以降低。
参考文献:
我正在从应用程序脚本创建一个新的 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 时,工艺成本或许可以降低。