将gzip压缩数据导入谷歌电子表格

时间:2012-06-18 19:43:33

标签: gzip spreadsheet google-apps-script google-sheets

我正在尝试从网址抓取gzip并将其自动导入Google电子表格。

gzip包含一个CSV数据文件。

我知道我可以将CSV数据导入到Google电子表格中,但我希望能够在将其上传到Google电子表格之前,先删除我必须下载gzip并提取文件的步骤。

所以我的问题是,是否可以将URL中的gzip压缩文件直接导入到Google电子表格中?如果没有,如何使用Google Apps脚本完成此操作?

2 个答案:

答案 0 :(得分:4)

我能够使用第三方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]);
  }

答案 1 :(得分:3)

在GAS中有一个名为unzip的未记录的实用程序,我知道它可以解压普通的.zip文件,但不知道是否支持GNU zip ...也许它值得试一试? 这是我为google文档/驱动器中的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
}

如果它不适合你,请不要责怪我......这只是一个建议; - )

相关问题