我试图获取从URL一个gzip,并自动将其导入到谷歌电子表格。
gzip数据包含CSV数据的一个文件。
我知道我可以导入CSV数据转换成谷歌电子表格,但我希望能够切出具有其上传到谷歌的电子表格之前,首先下载gzip和提取文件的我的一步。
所以我的查询,是否有可能要从网址导入gzip压缩的CSV文件直接导入谷歌电子表格? 如果不是,怎么会变成这样与谷歌的Apps脚本做了什么?
我试图获取从URL一个gzip,并自动将其导入到谷歌电子表格。
gzip数据包含CSV数据的一个文件。
我知道我可以导入CSV数据转换成谷歌电子表格,但我希望能够切出具有其上传到谷歌的电子表格之前,首先下载gzip和提取文件的我的一步。
所以我的查询,是否有可能要从网址导入gzip压缩的CSV文件直接导入谷歌电子表格? 如果不是,怎么会变成这样与谷歌的Apps脚本做了什么?
存在气体的无证工具,叫做解压缩,我知道它可以解压缩普通的.zip文件,但不知道如果GNU zip的支持......也许这是值得给它一个尝试一下呢? 这里是一个简单的测试,我写了一个拉链,这是在我的谷歌文档/驱动器
function testzip(){
var files=DocsList.getRootFolder().find('Sans titre.txt.zip');
var zipblob=files[0].getBlob();
var unzipblob = Utilities.unzip(zipblob);
var unzipstr=unzipblob[0].getDataAsString();// it is a text file
DocsList.createFile('Sans titre.txt',unzipstr);// I kept the original name to make it simple
}
不要怪我,如果它不为你工作?它只是一个建议;-)
我能膨胀(解压缩)使用第三方JavaScript库,PAKO gzip压缩的文件。 下面是代码:
eval(UrlFetchApp.fetch('https://cdn.rawgit.com/nodeca/pako/master/dist/pako.js').getContentText());
var charData = UrlFetchApp.fetch("<url to a .gz file>").getContent();
var binData = [];
for (var i = 0; i < charData.length; i++) {
binData.push(charData[i] < 0 ? charData[i] + 256 : charData[i]);
}
var data = pako.inflate(binData);
var decoded = '';
for (var i = 0; i < data.length; i++) {
decoded += String.fromCharCode(data[i]);
}