0

快速看看我通常会打扰人们告诉我这里是提问的新地方!

我一直在制作一个脚本来创建从电子表格数据生成的文档,而电子表格数据又是从谷歌表单生成的。(希望这是有道理的......)

无论如何,通过大量搜索和一些帮助,我已经非常成功,但现在我想让我的脚本同质化,所以当我想设置新表单等时我不需要修改它。

我有来自 Googles 脚本教程的 getRowData 函数,但不是从规范化的标题中调用行数据,我希望这些是通用的,即 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);
}
4

2 回答 2

1

如果您想使用它们的索引获取列,为什么要将它们解析为对象呢?只需使用平原getValues

var values = sheet.getDataRange().getValues();
var row2 = values[1];
var cell_in_col4 = row2[3];
于 2012-05-13T22:18:37.457 回答
0

声明 columnHeadersRowIndex 变量时,您似乎缺少“var”。

于 2014-11-11T17:31:38.467 回答