我有一个带有大量数字的Google表格,这些数字可以通过SUM功能相加并求和。
总数位于D2和E2单元格中
我需要一个Google Apps脚本,该脚本可将每个单元格分别导出到我的Google云端硬盘中各自的.txt文件(标记为D2Total.txt和E2Total.txt)中。
每次运行脚本时,我都需要它们覆盖自己,因为我将使用G Suite中的触发器不断(每隔几分钟)更新它们。
这可能很简单,但是在编码方面我很me脚。
我在互联网上尝试了一些很接近的随机代码,但只会导出整个电子表格。
答案 0 :(得分:0)
假设您在“ A2”中包含CSV数据,例如“ 1,2,3,4,5,6,7,8,9,10,11,12” 13,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);
}
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;
}
}