我將2列數據插入到Google電子表格中。我的表有3列A,B和C.列A,B數據通過表單插入,但列C數據通過公式= HTTPResponse()插入。如何使用以下代碼將新公式的數據插入到窗體C的新行上?目前我的代碼不會將代碼複製到新行!如何在向Google表格插入新行後應用最後一行的函數/公式?
插入的代碼:
function doPost(e) {
var ss = SpreadsheetApp.openById(ScriptProperties.getProperty('active'));
var sheet = ss.getSheetByName("DATA");
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]; //read headers
var nextRow = sheet.getLastRow(); // get next row
var cell = sheet.getRange('a1');
var col = 0;
for (i in headers){
if (headers[i] == "Timestamp"){
val = new Date();
} else if (headers[i] == "HTTPResponse"){ // (based on the assumption you add a column to you sheet with this name
val = '=HTTPResponse(B'+(nextRow+1)+')';
} else {
val = e.parameter[headers[i]];
}
cell.offset(nextRow, col).setValue(val);
col++;
}
var app = UiApp.createApplication();
var panel = app.createVerticalPanel();
for(p in e.parameters){
panel.add(app.createLabel(p +" "+e.parameters[p]));
}
app.add(panel);
return app;
}
function setUp() {
ScriptProperties.setProperty('active', SpreadsheetApp.getActiveSpreadsheet().getId());
}
//我想應用此下式新的行:
unction HTTPResponse(uri)
{
var response_code ;
try {
response_code = UrlFetchApp .fetch(uri) .getResponseCode() .toString() ;
}
catch(error) {
response_code = error .toString() .match(/ returned code (ddd)./)[1] ;
}
finally {
return response_code ;
}
}
您是否嘗試過使用此行「cell.offset(nextRow,col).setValue('= HTTPResponse()');」因爲變量'col'增加了,我認爲你可以在for循環之後添加該行,並且它將在C列中添加公式。檢查它,看看它是如何工作的。 – Gerardo
感謝您的回覆。我在cell.offset(nextRow,col).setValue(val);我在C列中獲得了「未定義」的值!我該如何解決這個問題? – user1788736
你還加了一個url嗎?函數HTTPResponse需要一個URL,因此它可以使用URLFecht.fetch函數調用它。 – Gerardo