google-apps-script - 使用 getR(2,"firstname") 获取 Range
问题描述
我想通过标题名称来处理单元格。例如。getR(表,2,“名字”)
示例数据:
1:名、姓
2:约翰、伯格
3:马克、托斯特
我期待以下内容:
getR(sheet, 2,"firstname") 然后应该给我: sheet.getRange(2, 1)
也许有可能让它写成: sheet.getR(2,"firstname")?
我看到了以下优点:更容易理解,如果标题的布局颠倒了,它仍然有效。
我的原型:
function getR(sheet, name) { // https://gist.github.com/printminion/5520691
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheet);
var range = ss.getRange(1, 1, 1, ss.getMaxColumns()).getValues()[0];
Logger.log(range);
for (var row in range) {
Logger.log(range[row ]);
if ( range[row ] == name ) {
return parseInt(row ) + 1;
}
}
throw 'failed';
}
解决方案
试试这个:
function getR(row,sheet,headername){
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName(sheet);
var rg=sh.getDataRange();
var nA=rg.getValues();
for(var i=1;i<nA.length;i++){
if(i+1==row){
for(var j=0;j<nA[i].length;j++){
if(nA[0][j]==headername){
return nA[i][j];
}
}
}
}
throw 'failed';
}
推荐阅读
- javascript - 用于添加和删除编辑器的 TinyMCE v4+ 顶级事件?
- javascript - React JS 切换所选项目
- python - 如何在资源组中列出 AWS 实例 ID
- node.js - Socket.IO:Swift 客户端连接到 Node.js 服务器但服务器不会注册连接?
- ios - 在 Swift 中做垂直翻转动画
- python - 如何从空间中删除身体和形状
- python - How to print Google Search results properly with bs4?
- python - 用python查询mongodb
- sql - 如何在 Apache nifi 中执行 Begin-End Transact SQL 语句?
- python - 使用 InstaBot 模块将视频上传到 Instagram