Google apps script Google Apps脚本|如何访问特定范围的行/列数据

Google apps script Google Apps脚本|如何访问特定范围的行/列数据,google-apps-script,Google Apps Script,我是谷歌应用程序脚本的新手,想为我通过谷歌表单收集的数据创建一个自动化脚本 我有3个字段,用户在表格中填写,填充工作表中的列 从响应中,我希望通过简单地将代码作为修改后的串联字符串写出,自动为另一种脚本语言“Papyrus”生成一个数据库条目 前 我不太确定如何从列中访问数据(字符串)并写入一个单独的列,该列将包含连接的字符串 到目前为止,我已经试着在网上列举了一些类似的例子,但并不完全是我想要实现的,这就是结果 var ss = SpreadsheetApp.getActiveSpreads

我是谷歌应用程序脚本的新手,想为我通过谷歌表单收集的数据创建一个自动化脚本

我有3个字段,用户在表格中填写,填充工作表中的列

从响应中,我希望通过简单地将代码作为修改后的串联字符串写出,自动为另一种脚本语言“Papyrus”生成一个数据库条目

我不太确定如何从列中访问数据(字符串)并写入一个单独的列,该列将包含连接的字符串

到目前为止,我已经试着在网上列举了一些类似的例子,但并不完全是我想要实现的,这就是结果

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getDataRange();
var lastRow = range.getLastRow();

function onOpen(e) {
  getValues();
}

function getValues() {
  var sortColumnRange = sheet.getRange("B2:D100");
  var sortColumnVals = sortColumnRange.getValues();
  var cell;
  for(var i = 1; i < sortColumnVals.length; i++){
    if(sortColumnVals[i][0] !== ""){
      var armorName = sortColumnVals[i][3].toString()
      var formID = sortColumnVals[i][2].toString()
      var pluginName = sortColumnVals[i][1].toString();
      pluginName.replace(" ","_");
      pluginName.replace(".esp","_ESP");
      pluginName.replace(".esm","_ESM");
      var entry = "string " + pluginName + " = " + sortColumnVals[i][0].toString() + "\n";
      entry = entry + "Entry " + armorName + " =  New Entry \n";
      entry = entry + armorName + ".PluginFile = " + pluginName + "\n";
      entry = entry + armorName + ".FormID = " + formID + "\n";
      entry = entry + armorName + ".TypeClass = ClassGasMask \n";
      entry = entry + "Add(" + armorName + ")";
      Logger.log(entry);
      cell = sheet.getRange(i, 5);
      cell.setValue(entry);
    }
  }
}
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getActiveSheet();
var range=sheet.getDataRange();
var lastRow=range.getLastRow();
功能开启(e){
getValues();
}
函数getValues(){
var sortColumnRange=sheet.getRange(“B2:D100”);
var sortColumnVals=sortColumnRange.getValues();
var细胞;
对于(变量i=1;i

没有明显的错误消息,但我感觉我没有访问正确的单元格。没有任何内容会打印到日志或输入到工作表中。

数组索引有问题。在Javascript(以及Google脚本)中,数组索引从0开始。所以你应该把你所有的索引数字都减少为1,我相信它会起作用(至少,当快速测试时,它确实会返回一些东西,尽管我无法评估这是否是你所期望的)

函数getValues(){
var sortColumnRange=sheet.getRange(“B2:D100”);
var sortColumnVals=sortColumnRange.getValues();
var细胞;
对于(变量i=0;i
当您说日志中没有打印任何内容时,您的意思是什么都没有,一个空白空间,一个空白数组吗?另外,为什么要在
i=1
开始循环?由于误解,我从i=1开始循环。我在0处遇到一个错误,结果表明它与索引无关。由于数组索引和实际工作表索引(从1开始)之间的差异,我也有点困惑
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getDataRange();
var lastRow = range.getLastRow();

function onOpen(e) {
  getValues();
}

function getValues() {
  var sortColumnRange = sheet.getRange("B2:D100");
  var sortColumnVals = sortColumnRange.getValues();
  var cell;
  for(var i = 1; i < sortColumnVals.length; i++){
    if(sortColumnVals[i][0] !== ""){
      var armorName = sortColumnVals[i][3].toString()
      var formID = sortColumnVals[i][2].toString()
      var pluginName = sortColumnVals[i][1].toString();
      pluginName.replace(" ","_");
      pluginName.replace(".esp","_ESP");
      pluginName.replace(".esm","_ESM");
      var entry = "string " + pluginName + " = " + sortColumnVals[i][0].toString() + "\n";
      entry = entry + "Entry " + armorName + " =  New Entry \n";
      entry = entry + armorName + ".PluginFile = " + pluginName + "\n";
      entry = entry + armorName + ".FormID = " + formID + "\n";
      entry = entry + armorName + ".TypeClass = ClassGasMask \n";
      entry = entry + "Add(" + armorName + ")";
      Logger.log(entry);
      cell = sheet.getRange(i, 5);
      cell.setValue(entry);
    }
  }
}
function getValues() {
  var sortColumnRange = sheet.getRange("B2:D100");
  var sortColumnVals = sortColumnRange.getValues();
  var cell;
  for(var i = 0; i < sortColumnVals.length; i++){
    if(sortColumnVals[i][0] !== ""){
      var armorName = sortColumnVals[i][2].toString()
      var formID = sortColumnVals[i][1].toString()
      var pluginName = sortColumnVals[i][0].toString();
      pluginName.replace(" ","_");
      pluginName.replace(".esp","_ESP");
      pluginName.replace(".esm","_ESM");
      var entry = "string " + pluginName + " = " + sortColumnVals[i][0].toString() + "\n";
      entry = entry + "Entry " + armorName + " =  New Entry \n";
      entry = entry + armorName + ".PluginFile = " + pluginName + "\n";
      entry = entry + armorName + ".FormID = " + formID + "\n";
      entry = entry + armorName + ".TypeClass = ClassGasMask \n";
      entry = entry + "Add(" + armorName + ")";
      Logger.log(entry);
      cell = sheet.getRange(i, 5);
      cell.setValue(entry);
    }
  }
}