【发布时间】:2020-03-06 09:58:13
【问题描述】:
我正在尝试使用 AJAX 将潜在客户从 CSV 发送到 Google 表格,例如 this method 将表单发送到 Google 表格。
我在 Gogole App Script 中使用此代码获得了它,但我需要在本地执行更多操作,例如在完成时删除 csv 文件。
function importCSVFromWeb() {
var csvUrl = "http://URL/csv/data.csv";
var csvContent = UrlFetchApp.fetch(csvUrl).getContentText();
var csvData = Utilities.parseCsv(csvContent);
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var lastRow = range.getLastRow();
sheet.getRange(lastRow + 1, 1, csvData.length, csvData[0].length).setValues(csvData);
}
这是我的 data.csv 的一个示例
"4","7","22300","johndoe@example.com","John","Doe","Company SL","666123456","519780151","","","","Instagram"
"6","10","08028","johnsmith@example.com","John","Smith","Company2 SL","666456789","519780151","","","","Facebook"
这是我的 AJAX 脚本:
<script>
$.ajaxSetup({ cache: false });//disable cache
$.ajax({
url: 'csv/data.csv',
dataType: 'text',
}).done(successFunction);
function successFunction(data) {
var allRows = data.split(/\r?\n|\r/);
for (var singleRow = 0; singleRow < allRows.length; singleRow++) {
var rowCells = allRows[singleRow].split(',');
document.querySelector("#leads-csv").innerHTML += rowCells+"<br/>";
//alert(rowCells);
const sheetsURL = 'https://script.google.com/macros/s/XXXXXXXXXXXXXXXXXXXXX/exec'
const sheets = document.forms['form-csv'] //evento de formulario
sheets.addEventListener('submit', e => {
e.preventDefault()
alert("Se va a insertar en Google Sheets");//once by row
fetch(sheetsURL, {
method: 'POST',
body: new FormData(sheets) //Failed to construct FormData!!
})
.then(response => console.log('Datos guardados en Google Sheets', response))
.catch(error => console.error('¡Error, revisa el código superior!', error.message))
});
}
}
</script>
我在尝试使用 CSV 行创建 FormData 时遇到问题
【问题讨论】:
-
请问
I have the problem when i trying to create the FormData with CSV rows的the problem的详细情况? -
您能解释一下您的代码流程是什么吗?您向哪个服务器/应用程序发出请求?您遇到的错误是什么?
-
Chrome 控制台在“body: new FormData(sheets)”行显示“Uncaught TypeError: Failed to construction 'FormData':parameter 1 is not of type 'HTMLFormElement'”。无论如何,我已经将重点改为使用服务器端工具。最后我使用了 Guzzle PHP。
标签: javascript ajax csv parsing google-sheets