nik*_*ers 5 javascript google-apps-script google-bigquery
背景:我正在尝试从Google表格上传单个数据行,并将其附加到BigQuery表中。
方法:我一直在使用https://developers.google.com/apps-script/advanced/bigquery来执行此操作,但是我没有使用数据文件(例如示例),而是将自己的工作表与来自具体行:
var file = SpreadsheetApp.getActiveSpreadsheet();
var currentSheet = file.getSheetByName(name);
var lastRow = currentSheet.getLastRow()
var lastC = currentSheet.getLastColumn()
var rows = currentSheet.getRange(2,1,1,lastC).getValues();
Run Code Online (Sandbox Code Playgroud)
“行”是要导入到BQ的数据行。我尝试了很多事情,根据另一个StackOverflow问题,“ rowsCSV”将2D值数组变成CSV。
var rowsCSV = rows.join("\n");
var data = rowsCSV.getBlob().setContentType('application/octet-stream');
Run Code Online (Sandbox Code Playgroud)
问题:每次运行该函数时,都会出现错误“无法在对象Blob中找到函数getBlob。”或“无法将数组转换为(class)[] []”或“无法在对象Tue中找到函数getBlob 5月16日,星期二” 2017 00:00:00 GMT + 0200(CEST),58072.4,,``,,,,,,,, test“,其中最后一位(” Tue May ..“)是该行的实际数据。
我在这里做错了什么?
没有getBlob数组的方法。您将必须使用Utilities.newBlob()来从字符串获取blob。您可以在此处找到相同的文档
var rowsCSV = rows.join("\n");
var blob = Utilities.newBlob(rowsCSV, "text/csv")
Logger.log(blob.getDataAsString())
var data = blob.setContentType('application/octet-stream');
Run Code Online (Sandbox Code Playgroud)
等效地,您可以这样做
var rowsCSV = rows.join("\n");
var data = Utilities.newBlob(rowsCSV, 'application/octet-stream')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1540 次 |
| 最近记录: |