如何从网络应用程序脚本的第二列开始将表单值附加到谷歌工作表?

问题描述 投票:0回答:2
google-apps-script
2个回答
0
投票

也许通过

SpreadsheetApp
API 更容易做到。试试这个:

function createRecord(values) {
  const ss = SpreadsheetApp.openById(SPREADSHEETID);
  const sheet = ss.getSheetByName(DATASHEET);
  const range = sheet.getRange(DATARANGE);
  appendRows_(sheet, values, range.getColumn());
}

为此,您需要将

appendRows_()
getLastRow_()
实用函数粘贴到脚本项目中。请参阅我的 appendRows_() 帖子。


0
投票

代替

appendRow()
,您可以尝试
setValues()
。在这种情况下,您可以替换这部分代码:

function processFormCreate(formObject) { 
var sss = SpreadsheetApp.openById('11uGKfy0Jh-24-RI-iIdjGhDtWxwhgiKRHT8JS9guP-Q'); 
var ss = sss.getSheetByName('Form responses 1'); 
  let values = [[
      formObject.districtName,
      formObject.upazilaName,
      formObject.name,
      formObject.email,
      formObject.eiin
    ]];
createRecord(values);    
    } 

function createRecord(values) {
  try {
    let valueRange = Sheets.newRowData();
    valueRange.values = values;

    let appendRequest = Sheets.newAppendCellsRequest();
    appendRequest.sheetId = SPREADSHEETID;
    appendRequest.rows = valueRange;

    Sheets.Spreadsheets.Values.append(valueRange, SPREADSHEETID, DATARANGE, { valueInputOption: "RAW" });
  } catch (err) {
    console.log('Failed with error %s', err.message);
  }
}

这样:

    function processFormCreate(formObject) { 
var sss = SpreadsheetApp.openById('11uGKfy0Jh-24-RI-iIdjGhDtWxwhgiKRHT8JS9guP-Q'); 
var ss = sss.getSheetByName('Form responses 1'); 
  let values = [[
      formObject.districtName,
      formObject.upazilaName,
      formObject.name,
      formObject.email,
      formObject.eiin
    ]];
createRecord(values);    
    

function createRecord(values) {
  try {
      ss.getRange(ss.getLastRow()+1,2,1,5).setValues(values);  
  } catch (err) {
    console.log('Failed with error %s', err.message);
  }
}
} 
© www.soinside.com 2019 - 2024. All rights reserved.