Как экспортировать одну ячейку из листов Google в текстовый файл - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть Google Sheet с набором чисел, которые суммируются и суммируются с помощью функции SUM.

Суммы находятся в ячейках D2 и E2

Мне нужен скрипт Google Appsкоторый будет экспортировать каждую из этих ячеек по отдельности в свои собственные файлы .txt (с пометкой D2Total.txt & E2Total.txt) на моем диске Google.

Мне нужно, чтобы они перезаписывались каждый раз при запуске скрипта, потому что я будупостоянно обновлять их (каждые несколько минут) с помощью триггеров в G Suite.

Возможно, это довольно просто, но я неэффективен в кодировании.

Я попробовал какой-то случайный кодв интернете, который был отчасти близок, но экспортировал бы только всю таблицу.

1 Ответ

0 голосов
/ 16 февраля 2019

Добавление таблицы данных из электронной таблицы в текстовый файл Google Doc или Ascii.

Предполагается, что у вас есть данные CSV в «A2», подобном этому. 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);
}

Перезагрузка того же текстового файла 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;                                       
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...