如何将单个单元格从Google表格导出到文本文件中

问题描述 投票:0回答:1

我有一个带有大量数字的Google表格,这些数字通过SUM功能求和并求和。

总数位于单元格D2和E2中

我需要一个Google Apps脚本,该脚本会将每个单元格分别导出到我的Google驱动器中各自的.txt文件(标记为D2Total.txt和E2Total.txt)。

我需要它们在每次运行脚本时覆盖自己,因为我将使用G Suite中的触发器使它们不断(每隔几分钟)进行更新。

这可能很简单,但是在编码方面我很la脚。

[我在互联网上尝试了一些随机的代码,这些代码很接近,但只会导出整个电子表格。

text google-apps-script google-sheets export cell
1个回答
0
投票

将电子表格中的数据表追加到Google Doc或Ascii文本文件中

假设您在'A2'中拥有CSV数据,例如'1,2,3,4,5,6,7,8,9,10,11,1213,14,14,16,17,18,19,20,21,22,23,24,带有行定界符'\ n',您可以使用此代码创建Google文档并将其附加为表格或直接导出将其保存为ascii文本文件。

导出到Google文档:

function exportToGDoc() {
  var fn=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yy:HH:mm") + '_Report';
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet62');//Need Sheet Name
  var rg=sh.getRange(1,1);
  var csv=rg.getValue();
  var vA=Utilities.parseCsv(csv);
  var fldr=DriveApp.getFolderById('Your Folder Id');//Need Folder Id
  var dk=DocumentApp.create(fn);
  var bd=dk.getBody();
  bd.appendTable(vA)
  dk.saveAndClose();
  var fileId=dk.getId();
  Drive.Files.update({"parents": [{"id": fldr.getId()}]}, dk.getId());//Need to install Drive API
}

导出到Ascii文本文件:

function exportToAsciiText() {
  var fn=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yy:HH:mm") + '_Report.csv';
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet62');//Need Sheet Name
  var rg=sh.getRange(1,1);//A1
  var csv=rg.getValue();
  var fldr=DriveApp.getFolderById('Your Folder Id');//Need Folder Id
  var file=fldr.createFile(fn, csv, MimeType.PLAIN_TEXT);
}

重新加载相同的ASCII文本文件

function exportToAsciiText() {
  var fn='MyReport.csv';//Your report name
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet62');//Need Sheet Name
  var rg=sh.getRange(1,1);//A1
  var csv=rg.getValue();
  var fldr=DriveApp.getFolderById('Your Folder Id');//Need Folder Id
  var files=fldr.getFilesByName(fn);
  var n=0;
  while(files.hasNext()) {
    var file=files.next();
    n++;
  }
  switch (n) {
    case 0:
      var file=fldr.createFile(fn, csv, MimeType.PLAIN_TEXT);
      break;
    case 1:
      file.setContent(csv);
      break;
    default:
      SpreadsheetApp.getUi().showModalDialog(HtmlService.createHtmlOutput(Utilities.formatString('You have more than one file named %s in folder named %s.',fn,fldr.getName())), 'Error: To many files with that name.');
      break;                                       
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.