본문 바로가기
컴퓨터

[gsheet] 구글 드라이브의 파일 정보를 구글 시트로 불러오기

by skyjwoo 2025. 3. 30.
728x90
반응형

 

 

1. 개요

구글 드라이브 url만 있으면, 해당 드라이브 내의 모든 파일명, url, 파일크기를 가져올 수 있는 시트입니다.

2. 사용 방법

(세팅)

- 아래 4번에서 사본 만들기 링크 클릭하여 사본 만들기

- 권한 허용 받기(맨 처음 실행 시)

Custom Menu - Open Sidebar 클릭 - 확인 - 계정 선택 - 고급 - 제목 없는 프로젝트(으)로 이동(안전하지 않음) - 허용

 

(사용)
구글 드라이브 url을 가져옵니다.
이때, 해당 구글 드라이브의 공유를 허용합니다.

 

custom menu - Open Sidebar를 클릭하여 Sidebar를 엽니다.

 

복사할 셀에 커서를 두고(중요), 복사했던 구글 드라이브 url을 입력 후 submit 버튼을 클릭합니다. 잠시 기다려줍니다. (드라이브 내 파일이 많으면 시간이 다소 걸립니다)

 

 

 

3. 본인 시트에 apps script 코드 추가해서 사용하기

사용 방법 중 세팅에서 아래 내용을 먼저 해주면 됩니다.

- 확장 프로그램 → Apps Script에 아래 코드 추가하고, 저장하기(ctrl+s)

gs 코드

function list_all_files_inside_one_folder_without_subfolders(folderId) {
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var activeRange = sh.getActiveRange(); // 현재 활성화된 셀 범위 가져오기
  var startRow = activeRange.getRow();   // 시작 행 번호
  var startCol = activeRange.getColumn(); // 시작 열 번호
  var regex = /(?:\/folders\/([a-zA-Z0-9-_]+))/;
  var match = folderId.match(regex)[1];
  var folder = DriveApp.getFolderById(match);
  var list = [];
  list.push(['Name','view_url','Size']);
  var files = folder.getFiles();
  
  while (files.hasNext()) {
    var file = files.next();
    var row = [];
    row.push(file.getName(), "https://drive.google.com/file/d/"+file.getId()+"/view?usp=drive", file.getSize());
    list.push(row);
  }
  
  sh.getRange(startRow, startCol, list.length, list[0].length).setValues(list);
}

function showSidebar() {
  var html = HtmlService.createHtmlOutputFromFile('sidebar')
      .setTitle('File List in Folder');
  SpreadsheetApp.getUi().showSidebar(html);
}

function onSidebarSubmit(folderId) {
  list_all_files_inside_one_folder_without_subfolders(folderId);
}

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu') // 메뉴 이름 정의
    .addItem('Open Sidebar', 'showSidebar') // 메뉴 항목 및 연결된 함수
    .addToUi();
}

function doGet() {
  return HtmlService.createHtmlOutputFromFile('sidebar');
}

 

html 코드 (파일명 : sidebar.html으로 설정할 것)

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <form>
      <label for="folderId">Enter Google Drive Folder ID:</label><br><br>
      <input type="text" id="folderId" name="folderId"><br><br>
      <input type="button" value="Submit" 
             onclick="google.script.run.onSidebarSubmit(document.getElementById('folderId').value);">
    </form>
  </body>
</html>

 

4. 새 시트로 만들어 사용하기

아래 링크를 클릭하여 사본을 만들어 사용하실 수 있습니다.

(링크)

 

Google Sheets: 로그인

이메일 또는 휴대전화

accounts.google.com

 

 

 

아래 링크들에서 다른 Google Sheet 툴들을 만나보실 수 있습니다!

1. Google Sheet 에서 두 텍스트 비교하기(링크)
2. Google Sheet를 활용한 gmail 자동화 (링크)
3. Google Sheet에서 GPT 사용해보기 (링크)
4. Google Sheet에서 키워드 색칠하기 (링크)

5. Google Sheet 에서 현재 시트를 csv파일로 다운 받기 (한글 깨짐 해결) (링크)

 

 

추가로 필요한 구글 시트 활용 툴이나, 개선 제안 사항이 있으면 댓글로 알려주세요!

728x90
반응형

댓글