我在 Google 电子表格中有一个脚本,该脚本从 URL 下载压缩的 CSV,然后将其导入电子表格。实际上,CVS 太大了,我不需要其中的所有数据。我的问题是,如何在将数据导入电子表格之前过滤数据?例如,使用 X 值过滤 A 列。
这是我到目前为止的代码:
function descargarzip()
{
var urldescarga = "http://187.191.75.115/gobmx/salud/datos_abiertos/datos_abiertos_covid19.zip"
var url = urldescarga
var zipblob = UrlFetchApp.fetch(url).getBlob();
zipblob.setContentTypeFromExtension();
var unzipblob = Utilities.unzip(zipblob);
var unzipstr=unzipblob[0].getDataAsString();
var csv = Utilities.parseCsv(unzipstr);
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
ss.getRange(1, 1, csv.length, csv[0].length).setValues(csv);
}
先感谢您!
尝试这个:
function descargarzip() {
var urldescarga = "http://187.191.75.115/gobmx/salud/datos_abiertos/datos_abiertos_covid19.zip"
var url = urldescarga
var zipblob = UrlFetchApp.fetch(url).getBlob();
zipblob.setContentTypeFromExtension();
var unzipblob = Utilities.unzip(zipblob);
var unzipstr=unzipblob[0].getDataAsString();
var csv = Utilities.parseCsv(unzipstr);
var x = 'You enter the contents x';
csv.forEach(function(r,i){
if(r[0]==x) {
r[0]='';//You have to put something back in there because the csv has to be a rectangular array for setValues();
}
});//You could remove an entire line or an entire column
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
ss.getRange(1, 1, csv.length, csv[0].length).setValues(csv);
}
如果@TheMaster是正确的,那么试试这个:
function descargarzip() {
var urldescarga = "http://187.191.75.115/gobmx/salud/datos_abiertos/datos_abiertos_covid19.zip"
var url = urldescarga
var zipblob = UrlFetchApp.fetch(url).getBlob();
zipblob.setContentTypeFromExtension();
var unzipblob = Utilities.unzip(zipblob);
var unzipstr=unzipblob[0].getDataAsString();
var csv = Utilities.parseCsv(unzipstr);
var x = 'You enter the contents x';
var d=0;
//I tested this on some of my data and I believe it works
for(var i=0;(i-d)<csv.length;i++) {
if(csv[i-d][0]==x) {
csv.splice(i-d++,1);//I think this is correct but I could be wrong in here because I mostly use this approach for deleting rows not portions of the array. So if you have problems the please share your csv data and I will debug it.
}
}
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
ss.getRange(1, 1, csv.length, csv[0].length).setValues(csv);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)