>source

온라인 퀴즈 게임에 Google 설문지 및 스프레드 시트를 사용하고 있습니다. 자동 채점을 수행하기 위해 모든 시트를 준비하고 각 개별 시트 (라운드 당 1 개, 라운드 5 개)의 정보를 마스터 스코어 시트로 전달합니다.

하루에 15 분 정도를 절약하기 위해 저는 약간의 Google 스크립팅을 배우고 단 한 번의 클릭으로 전날의 모든 답변과 유효성 검사를 지우는 무언가를 작성할 것이라고 생각했습니다.

그리고 성공했습니다! 이전에는 JavaScript로 아무것도 작성하지 않았지만 developer.google에서 명령에 대한 설명을 읽고 매우 유용한 Stack Overflow 답변을 찾는 사이에 문제없이 필요한 작업을 정확히 수행하는 스크립트를 만들 수있었습니다! 약 5 분 전에 테스트를 마쳤지만 여전히 어리석은 자부심이 있습니다!


  • 답변 # 1

    현재 코드에는 많은 반복이 필요합니다. 루프로 이것을 많이 단순화 할 수 있습니다.

    변경되는 유일한 것은 스프레드 시트 ID이므로 다음과 같이 해당 ID로 배열을 선언하고 반복 할 수 있습니다.

    function WipeAll() {
      var spreadsheetIDs = ["SPREADSHEET_ID_1", "SPREADSHEET_ID_2", ...]; // Change to your actual spreadsheet IDs
      var sourceSheetName = "Form Responses 1";
      var subSheetName = "Answer Validator";
      var subRangeNotation = "A:Z";
      spreadsheetIDs.forEach(spreadsheetID => {
        var ss = SpreadsheetApp.openById(spreadsheetID);
        var scr = ss.getSheetByName(sourceSheetName);
        var lr = scr.getLastRow();
        var sub = ss.getSheetByName(subSheetName);
        var rl = sub.getRange(subRangeNotation);
        rl.uncheck();
        if (lr > 1) src.deleteRows(2, lr);
      });
    };
    
    

    시트 이름이나 범위 표기법도 변경되는 경우 다음과 같이 개체 배열을 선언하는 것이 좋습니다.

    var sourceData = [
      {
        spreadsheetId: "SPREADSHEET_ID_1",
        sourceSheetName: "Form Responses 1",
        subSheetName: "Answer Validator",
        subRangeNotation: "A:Z"
      },
      {
        // ... Other spreadsheets data ...
      }
    ];
    
    
    참고:

    루프 및 반복

관련 자료

  • 이전 C ++에서 부모 문자열과 동일한 순서로 문자열의 문자 집합을 얻는 방법
  • 다음 python - 여러 JPEG에서 MJPEG 구성