如何自动将每周Excel数据从电子邮件附件导入到Google表格?

时间:2017-06-26 15:41:47

标签: import scripting google-sheets google-docs

每周我都会在我的电子邮件中收到包含数据的.xls / .csv附件。然后,我将数据从Google表格上传到Confluence。如何让.xls附件自动将数据放入Google表格?有可以使用的脚本吗?附件永远不会与我想的名字相同。

1 个答案:

答案 0 :(得分:0)

这是我最近为别人做的一个剧本。我认为它将文件放在一个文件夹中并将它们附加到工作表中,然后将旧文件重命名为filename.old,以便下次调用该函数时不再加载它们。

function appendingCSV() {
  var ss=SpreadsheetApp.getActiveSpreadsheet()
  var sht=ss.getActiveSheet();
  var drng = sht.getDataRange();
  var lastRow = drng.getLastRow();
  //var data = loadFile();
  var data = loadFiles();
  var dataA =Utilities.parseCsv(data);
  if(dataA.length>0)
  {
    var rng = sht.getRange(lastRow + 1, 1, dataA.length, dataA[0].length);
    rng.setValues(dataA);
  }
  else
  {
    SpreadsheetApp.getUi().alert('No Data Returned from LoadFiles');
  }
}

function loadFiles(folderID)
{
  var folderID = (typeof(folderID) !== 'undefined')? folderID : 'FolderID';
  var fldr = DriveApp.getFolderById(folderID);
  var files = fldr.getFiles();
  var s='';
  var re = /^.*\.csv$/i;
  while (files.hasNext())
  {
    var file = files.next();
    var filename = file.getName();
    if(filename.match(re))
    {
      s+=file.getBlob().getDataAsString().split('\n').splice(1).join('n') + '\n';//this was an attempt to strip off the headers. I don't know if it worked or not.
      //s += file.getBlob().getDataAsString() + '\n';
      file.setName(filename.slice(0,-3) + 'old');
    }
  }
  return s;
}