也许通过
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_() 帖子。
代替
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);
}
}
}