Google Apps脚本 - 电子表格中的通用标题

时间:2012-05-13 05:20:08

标签: javascript google-apps-script

快速浏览我通常打扰别人的地方告诉我这里是提问的新地方!

我一直在创建一个脚本来创建从电子表格数据生成的文档,而这些文档又是从Google表单生成的。 (希望有意义......)

无论如何,我已经非常成功地进行了大量的搜索和帮助,但现在我想让我的脚本变得同质,所以当我想设置新的表单等时我不需要修补它。

我有来自Googles脚本教程的getRowData函数,但我没有从规范化的Headers中调用行数据,而是希望它们是通用的,即Column1,Column2等。

我已粘贴下面的教程功能,它将数据传递给另一个函数,该函数规范化标题以用作对象,我想我可以将它们设为通用但我不知道如何开始使用它...

非常感谢任何帮助!!

谢谢,

亚历

// getRowsData iterates row by row in the input range and returns an array of objects.
// Each object contains all the data for a given row, indexed by its normalized column name.
// Arguments:
//   - sheet: the sheet object that contains the data to be processed
//   - range: the exact range of cells where the data is stored
//   - columnHeadersRowIndex: specifies the row number where the column names are stored.
//       This argument is optional and it defaults to the row immediately above range; 
// Returns an Array of objects.
function getRowsData(sheet, range, columnHeadersRowIndex) {
  columnHeadersRowIndex = columnHeadersRowIndex || range.getRowIndex() - 1;
  var numColumns = range.getEndColumn() - range.getColumn() + 1;
  var headersRange = sheet.getRange(columnHeadersRowIndex, range.getColumn(), 1, numColumns);
  var headers = headersRange.getValues()[0];
//  Browser.msgBox(headers.toSource());
  return getObjects(range.getValues(), normalizeHeaders(headers));
//  return getObjects(range.getRowIndex);
}

2 个答案:

答案 0 :(得分:1)

如果要使用索引获取列,为什么要将它们解析为对象?只需使用普通getValues

即可
var values = sheet.getDataRange().getValues();
var row2 = values[1];
var cell_in_col4 = row2[3];

答案 1 :(得分:0)

看起来你错过了" var"在声明columnHeadersRowIndex变量时。