.txt에 다른 행 내용 추가

Nov 15 2020

행의 내용을 .txt로 내보내고 =를 입력하는 스크립트를 작업해야했지만 이제 스크린 샷에 표시되는 것처럼 다른 행의 내용을 .txt에 추가 할 수있는 방법을 알고 싶습니다. .

이것은 내가 현재 가지고 있지만 제대로 작동하지 않는 코드입니다.

function exporttotxt() {
  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getActiveSheet();
  var range = sheet.getRange('G3:G' + sheet.getLastRow());
  var rows = range.getValues().filter(([g]) => g.toString() != "");
  var range2 = sheet.getRange('I3:I' + sheet.getLastRow());
  var rows2 = range2.getValues().filter(([i]) => i.toString() != "");
  var fileName="exported.txt";
  var folderName="Videos";
  var data = rows.splice(0);
  var data2 = rows2.splice(0);
  var str = data.map(function(e) {return e.join()}).join("=") + "=" + data2.map(function(e) {return e.join()}).join("\n");
  var content = str;

  // get list of folders with matching name
  var folderList = DriveApp.getFoldersByName(folderName);  
  if (folderList.hasNext()) {
    // found matching folder
    var folder = folderList.next();

    // search for files with matching name
    var fileList = folder.getFilesByName(fileName);

    if (fileList.hasNext()) {
      // found matching file - append text
      var file = fileList.next();
      var combinedContent = content;
      file.setContent(combinedContent);
    }
    else {
      // file not found - create new
      folder.createFile(fileName, content);
    }
  }
}

답변

2 Tanaike Nov 15 2020 at 22:08

나는 당신의 목표를 다음과 같이 믿습니다.

  • 열 "G"와 "I"의 값을 병합하여 텍스트를 작성하려고합니다.

귀하의 상황에서 "G"및 "I"열에서 값을 하나씩 검색하는 것은 getValues어떻습니까? 이로 인해 프로세스 비용이 낮아지고 스크립트가 약간 간단 해집니다. 이것을 스크립트에 반영하면 다음과 같이됩니다.

에서:

var range = sheet.getRange('G3:G' + sheet.getLastRow());
var rows = range.getValues().filter(([g]) => g.toString() != "");
var range2 = sheet.getRange('I3:I' + sheet.getLastRow());
var rows2 = range2.getValues().filter(([i]) => i.toString() != "");
var fileName="exported.txt";
var folderName="Videos";
var data = rows.splice(0);
var data2 = rows2.splice(0);
var str = data.map(function(e) {return e.join()}).join("=") + "=" + data2.map(function(e) {return e.join()}).join("\n");
var content = str;

에:

var range = sheet.getRange('G3:I' + sheet.getLastRow());
var rows = range.getValues().filter(([g, _, i]) => g.toString() != "" && i.toString() != "");
var fileName="exported.txt";
var folderName="Videos";
var data = rows.splice(0);
var str = data.map(([g, _, i]) => `${g}=${i}`).join("\n");
var content = str;