我正试图在其他谷歌页面中计算最大行数。实际上,每个电子表格都有许多选项卡,我希望每个电子表格下的所有选项卡的最大行数。
我发现IMPORTRANGE
函数可以使用URL从其他电子表格中获取数据,但是该函数只能读取带有工作表名称的数据。要获得工作表名称列表,我认为下面的函数可能是有用的:
function sheetnames() {
var out = new Array()
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
return out
}
但是这个函数只在它所在的工作表中起作用,在每个单张中编写这个函数显然是不可能的,所以我的问题是:
是否可以对sheetnames()
**function进行改进以从其他工作表中获取工作表名称?(有URL吗?我不确定)或者我怎样才能用其他方法实现它?**
非常感谢您的耐心!
发布于 2022-05-13 11:35:15
一张单张:
function myFunction() {
return SpreadsheetApp.openByUrl(`SPREADSHEET_URL`)
.getSheets()
.map(i => [i.getSheetName(), i.getLastRow()])
// To view results:
//.forEach(i => Logger.log(i))
}
输出:
[
[Sheet1, 10],
[Sheet2, 15],
[Sheet3, 20]
]
多张纸:
function myFunction() {
const spreadsheetUrlList = [
`...`,
`...`,
`...`
]
return spreadsheetUrlList.map(i => {
const spreadsheet = SpreadsheetApp.openByUrl(i)
return {
SpreadsheetName: spreadsheet.getName(),
Sheets: [
...spreadsheet.getSheets()
.map(i => [i.getSheetName(), i.getLastRow()])
]
}
})
// To view results:
//.forEach(i => i.Sheets.forEach(item => Logger.log(`(${i.SpreadsheetName}) "${item[0]}": ${item[1]}`)))
}
输出:
[
{
SpreadsheetName: `MySpreadsheet`,
Sheets: [
['Sheet1', 50],
['Sheet2', 40]
]
},
{
SpreadsheetName: `MySpreadsheet2`,
Sheets: [
['Sheet1', 30],
['Sheet2', 70]
]
},
...
]
如果您有任何问题或想要不同的输出格式,请告诉我!
发布于 2022-05-13 11:31:51
如果您有电子表格的url,此函数将返回所述电子表格的所有工作表的最大行数。
function myFunction() {
var spreadsheet = SpreadsheetApp.openByUrl("URL GOES HERE");
var sheets = spreadsheet.getSheets();
let currentMaximum = 0;
for (var i = 0; i < sheets.length; i++){
var numberOfRows = sheets[i].getMaxRows();
if (numberOfRows > currentMaximum){
currentMaximum = numberOfRows;
}
}
return currentMaximum;
}
它使用getSheets()函数获取包含电子表格所有工作表的数组,然后遍历所有这些工作表,使用getMaxRows()函数获取每个电子表格中的行数,并在找到新的最大行数时更新currentMaximum
变量。
发布于 2022-05-13 18:04:26
电子表格的最大行数
function maxrows(id=SpreadsheetApp.getActive().getId()) {
Logger.log(SpreadsheetApp.openById(id).getSheets().map(sh => sh.getMaxRows()).sort((a,b) => b - a)[0]);
}
Execution log
12:03:34 PM Notice Execution started
12:03:34 PM Info 4994.0
12:03:35 PM Notice Execution completed
https://stackoverflow.com/questions/72227021
复制相似问题