我正在尝试获取一个压缩在URL中的CSV,这需要基本的身份验证。我无法做到这一点。我在'files'参数上遇到语法错误。这就是我试过的:
function importdatastreamcsv() {
var user = 'user';
var pw = 'pass';
var csvUrl = 'https://example.com/api/datastream/download/58350?tableIds=67595&usePreferences=false';
var csvContent = UrlFetchApp.fetch(csvUrl,{headers: {'Authorization': 'Basic ' + Utilities.base64Encode(user + ':' + pw, Utilities.Charset.UTF_8)}});
var files = Utilities.unzip(csvContent)[0]; //syntax error on the argument! :(
var csvData = Utilities.parseCsv(files.getDataAsString());
var sheet = SpreadsheetApp.getActiveSheet().getActiveCell();
sheet.setValues(csvData);
}
寻找其他替代方案,我注意到可以在html表中提取数据(不是zip-csv格式),所以我写了另一个脚本。它有点工作,但所有信息都是普通的html并且只存储在一个单元格中,因此几乎不可能阅读......这里是代码:
function importdatastreamhtml() {
var user = 'user';
var pw = 'pass';
var csvUrl = 'https://example.com/api/datastream/download/58350?tableIds=67595&usePreferences=false&format=web';
var csvContent = UrlFetchApp.fetch(csvUrl,{headers: {'Authorization': 'Basic ' + Utilities.base64Encode(user + ':' + pw, Utilities.Charset.UTF_8)}});
var html = csvContent.getContentText();
var sheet = SpreadsheetApp.getActiveSheet().getRange(1, 1);
sheet.setValue(html);
}
我需要让这两个中的至少一个正确运行。我可以在这里找到什么?
输出应该是一个简单的表格。
非常感谢,
凯撒