Javascript 如何在google apps脚本中获取特定列中的行号
在我的电子表格中,我有12张表格。每一张纸都有一个城市的名字。它还以其相应的名称出现在每张图纸的A列中 要本地化vba中的行号,我使用以下代码Javascript 如何在google apps脚本中获取特定列中的行号,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,在我的电子表格中,我有12张表格。每一张纸都有一个城市的名字。它还以其相应的名称出现在每张图纸的A列中 要本地化vba中的行号,我使用以下代码 Q = 0 For Each Sheet In ThisWorkbook.Worksheets //Result is the last sheet If Sheet.Name <> "Result" Then With Sheet number = .Range("A:A").Fi
Q = 0
For Each Sheet In ThisWorkbook.Worksheets
//Result is the last sheet
If Sheet.Name <> "Result" Then
With Sheet
number = .Range("A:A").Find(Sheet.Name).Row + 1
totalnumber = .Range("A" & Rows.Count).End(xlUp).Row
Q = Q + (number - totalnumber + 1) * 31
//I use this for get the date from a month
For i = 1 To 12
If arr(i) = .Range("a2") Then
YY = Year(Now)
MM = Month(CDate("01/" & i & "/" & YY))
Exit For
End If
Next
End With
End If
Next
function myFunction() {
// next code will be written here, line by line
}
var ss = SpreadsheetApp.openById("1lqLHXt15SKamuGTnIjQoAAiWuuxEJOUcY1ZdamxCk_0"); // you can actually use this id. Link below the post.
从现在起,ss
将成为我们的电子表格var allMySheets = ss.getSheets();
allMySheets
现在是一个-每个元素都是我们电子表格中的一张表var ss = SpreadsheetApp.openById("1lqLHXt15SKamuGTnIjQoAAiWuuxEJOUcY1ZdamxCk_0"); // you can actually use this id. Link below the post.
forEach
方法:
allMySheets.forEach(function(sheet){
// ^ note
// next code will be written here, line by line
})
这样做的目的是为allMySheets
中的每个元素调用内部函数,并将该函数作为参数提供给元素。从这里开始,sheet
就是我们的工作表var dataRange = sheet.getDataRange();
var dataValues = dataRange.getValues();
dataValues
现在是一个二维数组,看起来像这样:
[
["Column 1", "Column 2", "Column 3"],
["Some val", "Some val2", 15],
[3,8,0],
]
并转化为您在该表中看到的实际表格:
+----------+-----------+----------+
| Column 1 | Column 2 | Column 3 |
+----------+-----------+----------+
| Some val | Some val2 | 15 |
| 3 | 8 | 0 |
+----------+-----------+----------+
我们需要把这个循环一下。对于循环,我们将使用两个。第一个表示行,另一个表示列:
for (var i=0;i<dataValues.length;i++){
var rowArray = dataValues[i];
for (var j=0;j<rowArray.length;j++){
var columnValue = rowArray[j];
}
}
j
是0
,我们需要它的数据。这意味着:
if (j===0) {
// we are at first column
// let's check if the value is our sheetName:
if (columnValue === sheetName){
// if we got here, means we have the needed row.
var rowNumber = i + 1; // remember that in array, i being 0 meneans row one
Logger.log(rowNumber);
// now you can do whatever you want to this number.
}
}
或者,另一种方法(我推荐这种方法,因为使用同一行中的其他列值更容易:
if (rowArray[0] === sheetName){
// We're at the right row
var rowNumber = i+1;
// Do something with columnValue
}
function myFunction() {
var ss = SpreadsheetApp.openById("1lqLHXt15SKamuGTnIjQoAAiWuuxEJOUcY1ZdamxCk_0");
var allMySheets = ss.getSheets();
allMySheets[0].getRange(1, 1, allMySheets[0].getLastRow(), allMySheets[0].getLastColumn()).getValues()
allMySheets.forEach(function(sheet){
var sheetName = sheet.getName();
var dataRange = sheet.getDataRange();
var dataValues = dataRange.getValues();
for (var i=0;i<dataValues.length;i++){
var rowArray = dataValues[i];
for (var j=0;j<rowArray.length;j++){
var columnValue = rowArray[j];
if (rowArray[0] === sheetName){
// We're at the right row
var rowNumber = i+1;
Logger.log("Row number: %s, sheet name: %s, column value: %s", rowNumber, sheetName, columnValue);
// Do something with columnValue
}
}
}
})
}
函数myFunction(){
var ss=SpreadsheetApp.openById(“1LQLHXT15SKAMUGTNIJQOAAIWuuuxejoucy1ZDAMxCk_0”);
var allMySheets=ss.getSheets();
allMySheets[0]。getRange(1,1,allMySheets[0]。getLastRow(),allMySheets[0]。getLastColumn())。getValues()
allMySheets.forEach(函数(表){
var sheetName=sheet.getName();
var dataRange=sheet.getDataRange();
var dataValues=dataRange.getValues();
对于(var i=0;i)到目前为止,您尝试了什么?向我们展示您的javascript代码完成后,我将我的代码放入已尝试的代码中。
if (rowArray[0] === sheetName){
// We're at the right row
var rowNumber = i+1;
// Do something with columnValue
}
function myFunction() {
var ss = SpreadsheetApp.openById("1lqLHXt15SKamuGTnIjQoAAiWuuxEJOUcY1ZdamxCk_0");
var allMySheets = ss.getSheets();
allMySheets[0].getRange(1, 1, allMySheets[0].getLastRow(), allMySheets[0].getLastColumn()).getValues()
allMySheets.forEach(function(sheet){
var sheetName = sheet.getName();
var dataRange = sheet.getDataRange();
var dataValues = dataRange.getValues();
for (var i=0;i<dataValues.length;i++){
var rowArray = dataValues[i];
for (var j=0;j<rowArray.length;j++){
var columnValue = rowArray[j];
if (rowArray[0] === sheetName){
// We're at the right row
var rowNumber = i+1;
Logger.log("Row number: %s, sheet name: %s, column value: %s", rowNumber, sheetName, columnValue);
// Do something with columnValue
}
}
}
})
}