如何使用电子表格和脚本在网页中创建数据表

时间:2019-11-12 17:11:46

标签: google-apps-script

我在Google trix中有一个源转储,如下所示:

名称月份数量 苹果1月10日 香蕉2月15日 Orrange 1月50日 葡萄3月5日

我需要使用以下电子表格和应用程序来获取网页中的摘要。

月份数量 一月60 2月15 3月5日

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

假设您将数据作为csv文件获取。然后,这应该工作。

function monthlyTotals(fileId) {
  var fileId=fileId||"default file id";//update your fileId 
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet1');//update your sheet name
  sh.clear();
  var file=DriveApp.getFileById(fileId);
  var csv=file.getBlob().getDataAsString()
  var dA=Utilities.parseCsv(csv);
  var mObj={fA:['Month'],'Month':'Quantity'};//Stuck in my own titles here
  dA.forEach(function(r,i){
    if(i>0) {//skipped the first line assuming it is a header line
      if(!mObj.hasOwnProperty(r[1])) {
        mObj[r[1]]=Number(r[2]);
        mObj.fA.push(r[1]);
      }else{
        mObj[r[1]]+=Number(r[2]);
      }  
    }          
  });
  mObj.fA.forEach(function(f,i){
    sh.appendRow([f,mObj[f]])
  });
}

如果要从数据中获取标题:

function monthlyTotals(fileId) {
  var fileId=fileId||"default fileId";
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet1');
  sh.clear();
  var file=DriveApp.getFileById(fileId);
  var csv=file.getBlob().getDataAsString();
  var dA=Utilities.parseCsv(csv);
  var mObj={fA:[]};
  dA.forEach(function(r,i){
    if(i>0) {
      if(!mObj.hasOwnProperty(r[1])) {
        mObj[r[1]]=Number(r[2]);
        mObj.fA.push(r[1]);
      }else{
        mObj[r[1]]+=Number(r[2]);
      }  
    }else{
      mObj[r[1]]=r[2];
      mObj.fA.push(r[1]);
    }
  });
  mObj.fA.forEach(function(f,i){
    sh.appendRow([f,mObj[f]])
  });
}