导入gzip压缩的数据导入谷歌电子表格(Import gzipped data into googl

2019-06-25 13:48发布

我试图获取从URL一个gzip,并自动将其导入到谷歌电子表格。

gzip数据包含CSV数据的一个文件。

我知道我可以导入CSV数据转换成谷歌电子表格,但我希望能够切出具有其上传到谷歌的电子表格之前,首先下载gzip和提取文件的我的一步。

所以我的查询,是否有可能要从网址导入gzip压缩的CSV文件直接导入谷歌电子表格? 如果不是,怎么会变成这样与谷歌的Apps脚本做了什么?

Answer 1:

存在气体的无证工具,叫做解压缩,我知道它可以解压缩普通的.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
}

不要怪我,如果它不为你工作?它只是一个建议;-)



Answer 2:

我能膨胀(解压缩)使用第三方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]);
  }


文章来源: Import gzipped data into google spreadsheet