每當我嘗試從我的谷歌擴展向谷歌表發送資料時,我都會遇到這個問題
我想在我的 textarea 中輸入多行并在 google sheet 檔案中的不同行中接收它們,這可能嗎?我的html代碼
<form method="POST" action="my script url">
<label style="font-size:20px;color: green;">Auto </label>
<textarea name="Auto" type="text" id="autolist"></textarea>
<button type="submit" class="button-38" role="button" id="addauto">Add to Auto</button><br><br>
</form>
谷歌腳本
const sheetName = 'Sheet1'
const scriptProp = PropertiesService.getScriptProperties()
function intialSetup () {
const activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
scriptProp.setProperty('key', activeSpreadsheet.getId())
}
function doPost (e) {
const lock = LockService.getScriptLock()
lock.tryLock(10000)
try {
const doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))
const sheet = doc.getSheetByName(sheetName)
const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
const nextRow = sheet.getLastRow() 1
const newRow = headers.map(function(header) {
return header === 'Date' ? new Date() : e.parameter[header]
})
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow }))
.setMimeType(ContentService.MimeType.JSON)
}
catch (e) {
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))
.setMimeType(ContentService.MimeType.JSON)
}
finally {
lock.releaseLock()
}
}
uj5u.com熱心網友回復:
在您的情況下,如何進行以下修改?
從:
const newRow = headers.map(function(header) {
return header === 'Date' ? new Date() : e.parameter[header]
})
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])
至:
const rows = headers.map(header => header === 'Date' ? [new Date()] : (e.parameter[header] ? e.parameter[header].split("\n") : []));
const max = Math.max(...rows.map(r => r.length));
const temp = rows.map(r => [...r, ...Array(max - r.length).fill(null)]);
const newRows = temp[0].map((_, c) => temp.map(r => r[c]));
if (newRows.length > 0) {
sheet.getRange(nextRow, 1, newRows.length, newRows[0].length).setValues(newRows);
}
- 在此修改中,包括的值
\n被拆分為一個陣列。并且,該陣列被放入電子表格中。這樣,每行都被放入每個單元格中。
筆記:
當您修改 Web Apps 的 Google Apps Script 時,請將部署修改為新版本。這樣,修改后的腳本就會反映在 Web Apps 中。請注意這一點。
您可以在我的報告“重新部署 Web 應用程式而不更改新 IDE 的 Web 應用程式的 URL(作者:我) ”中查看詳細資訊。
順便說一句,在這種情況下,從您的 Javascript 中,它假設您的 Web 應用程式部署為“執行身份:我”和“誰有權訪問該應用程式:任何人”。請注意這一點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/529352.html
上一篇:禁用Google表格公式
