Getting the cursor row/column from a Google spreadsheet through a Javascript method

亡梦爱人 提交于 2019-12-01 08:53:34

问题


On 29 Mar 2010, Jason Hale wanted to use the spreadsheet cursor location to select an e-mail address for a Javascript app he was writing - See http://productforums.google.com/forum/#!topic/apps-script/U10q44vptPU. Respondents suggested the getActiveSelection and concomitant getRowIndex/getColumnIndex methods. Unfortunately, they didn't work for Hale and they didn't work for me two years later when I wanted to write a similar application. The cursor's location has no effect on getRowIndex and getColumnIndex. These methods always return 1, which is useless and probably a bug. Google Apps lacks a cursor service such as the one Python offers. Has anyone found anything that Google Apps returns that might be useful in this context?


回答1:


The following code works for me. It prompts me with the row number of my current position in the spreaadsheet:

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [ {name: "Test1", functionName: "menuItem1"}];
  ss.addMenu("Tests", menuEntries);
}

function menuItem1() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  Browser.msgBox("You have selected row " + ss.getActiveCell().getRow());
}



回答2:


Have you tried a simple function like this one ?

function getRCposition(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var cell = ss.getActiveCell();
  var R = cell.getRow();
  var C = cell.getColumn();
  Browser.msgBox('Row = '+R+' and Col = '+C);
  }

or a more 'universal' function like this :

function getposition(){
   var sh = SpreadsheetApp.getActiveSheet();
   var ss = SpreadsheetApp.getActiveSpreadsheet();
  var range = ss.getActiveRange();
  var R = range.getRowIndex();
  var C = range.getColumnIndex();
  var W = range.getWidth();
  var H = range.getHeight();
  var A1not = range.getA1Notation();
  Browser.msgBox('Row = '+R+' / Col = '+C+' Width = '+W+'  / Heigth = '+H+'  A1 notation = '+A1not);
  }


来源:https://stackoverflow.com/questions/10966631/getting-the-cursor-row-column-from-a-google-spreadsheet-through-a-javascript-met

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!