我已经通读这篇文章>> set format as plain text
我正在创建一个新线程,因为该线程已经有几年历史了,我不想恢复几年前的东西。
代码:
function A1format() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var mainsheet = ss.getSheetByName("Sheet1");
var G = mainsheet.getRange("C15:BH3000").getGridId();
var illa = mainsheet.getRange("A13");
Logger.log(G);
illa.copyFormatToRange(G, 16, 3,200, 30);
}
此代码应该为名为 Sheet1
的工作表设置纯文本格式
我试过 var mainsheet = ss.getSheetByName("Sheet1, Sheet2, Sheet3");
但这似乎不起作用,我只是收到一条错误消息。
这是我目前的代码,这段代码可以工作,但效率低下,而且如果发生变化,维护起来真的很痛苦:
function setPlainTextDefault() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheets()[0];
var sheet2 = ss.getSheets()[2];
var sheet3 = ss.getSheets()[4];
var sheet4 = ss.getSheets()[7];
var sheetColumn1 = sheet1.getRange("A1:A");
var sheetColumn2 = sheet2.getRange("A1:A");
var sheetColumn3 = sheet3.getRange("A1:A");
var sheetColumn4 = sheet4.getRange("A1:A");
sheetColumn1.setNumberFormat("@");
sheetColumn2.setNumberFormat("@");
sheetColumn3.setNumberFormat("@");
sheetColumn4.setNumberFormat("@");
}
在这里,我通过使用工作表的索引号将每张工作表中的每一列 A 更改为纯文本,所以我必须手动计算每张工作表的编号,这是一场噩梦,因为我有大量的工作表,我手动计算床单然后将其添加到我当前的代码中将花费太多时间。我知道有一种更好、更有效的方法可以做到这一点,但由于我对 google apps 脚本编写缺乏了解,所以我不知道该怎么做。
不管有多少张纸,您如何对文档中的每张纸执行此操作?我想遍历每一张纸,从 sheet1 到 x 张纸,然后将每一列 A 更改为纯文本。
最佳答案
var mainsheet = ss.getSheetByName("Sheet1, Sheet2, Sheet3")
抛出错误,因为没有名为“Sheet1, Sheet2, Sheet3”的工作表。 “没有办法减少代码中对电子表格服务的调用,但您可以通过使用循环和数组处理等一些 JavaScript 功能使其“看起来更好”。
示例(未经测试)
在下面的代码片段中,数组、for 和 indexOf 用于减少原始代码的行数。
function setPlainTextDefault() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var sheetsToProcess = [0,2,4,7]; // Array holding the sheets indexes to process
for(var i = 0; i < sheets.length; i++){
/* If i is not in the sheetsToProccess indexOf returns -1 which is parsed as false
otherwise the result is parsed as true */
if(sheetsToProcess.indexOf(i)){
var sheet = ss.getSheets()[i];
var sheetColumn = sheet.getRange("A1:A");
sheetColumn.setNumberFormat("@");
}
}
}
要使上述工作适用于每个工作表,请注释掉或删除 if(sheetsToProcess.indexOf(i)){
和相应的 }
。
值得注意的是,如果您正在寻求帮助以找到改进代码的“最佳”方法,您可以尝试 Code Review .
关于javascript - 如何将每张纸的列设置为纯文本格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48190134/