Как создать текстовый файл * .csv из содержимого определенных столбцов? - PullRequest
1 голос
/ 02 октября 2019

Я хотел бы экспортировать содержимое столбцов C & D (см. Красную маркировку на скриншоте) в виде текстового файла, используя кнопку в соответствии со схемой NYSE: GE, NYSE: BAC, ... без разрывов, пробелови т. д.

Выбор данных также должен быть связан с определенными условиями.

Пример: экспортировать все содержимое столбцов C & D, где столбцы A, H, I и U (см. синяя маркировка на скриншоте) содержит что-то конкретное.

В идеале было бы возможно установить условия в таблице с помощью раскрывающегося списка, затем извлечь условия в коде и запустить экспорт соответствующим образом с помощью кнопки. .

Обновление: Для моего случая я изменил код с Купера на следующий. Это работает для меня. Спасибо Куперу: -)

function cAndDtoCSV(filename) {

  var filename=filename||'Watchlist.csv';
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var rg1 =ss.getRange(""); //Get range of conditions
  var vA=rg.getValues();
  var Cd1 = rg1.getCell().getValue(); //Get value of condition No.1
  var Cd2 = rg1.getCell().getValue(); //Get value of condition No.2
  var Cd3 = rg1.getCell().getValue(); //Get value of condition No.3
  var csv="";
  for(var i=0;i<vA.length;i++) {
    if(vA[i][0]==Cd1 && vA[i][7]==Cd2 && vA[i][8]==Cd3) {  
      csv+=Utilities.formatString('%s,%s\r\n', vA[i][2],vA[i][3]);
    }
  }
  var file=DriveApp.createFile(filename,csv,MimeType.CSV);
}

1 Ответ

0 голосов
/ 02 октября 2019
function cAndDtoCSV(filename) {
  var filename=filename||'myfile.csv';
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  var csv="";
  for(var i=0;i<vA.length;i++) {
    if(vA[i][0] && vA[i][7] && vA[i][8]) {
      csv+=Utilities.formatString('%s,%s\r\n', vA[i][2],vA[i][3]);
    }
  }
  var file=DriveApp.createFile(filename,csv,MimeType.CSV);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...