GCP/Apps Script
Apps Script로 Google Sheets의 sheets들 index(목차) 만들기
whistory
2023. 1. 13. 15:04
반응형
엑셀 인 Google Sheets 는
sheet를 계속 생성할 수 있다.
한 파일 안에 sheet 들을 목차 형식으로 빼고싶어졌다.
현재 개발중인 Google sheets의 sheet 들.
일단, Google Sheets 의 sheet 이름들을 가져온다.
function getSheetsNameAndCreateIndex() {
const sheet = SpreadsheetApp.getActiveSpreadsheet();
const sheets = sheet.getSheets();
for ( i in sheets ) {
const sheetName = sheets[i].getName();
console.log(sheetName);
}
}
시트이름과, URL 링크를 목차라는 sheet 에 뿌려줘본다.
function getSheetsNameAndCreateIndex() {
const sheet = SpreadsheetApp.getActiveSpreadsheet();
const sheets = sheet.getSheets();
let sheet_list = new Array();
for ( i in sheets ) {
const sheetName = sheets[i].getName();
const sheetUrl = `https://docs.google.com/spreadsheets/d/${sheet.getId()}/edit#gid=${sheets[i].getSheetId()}`;
sheet_list[i] = new Array(2);
sheet_list[i][0] = sheetName;
sheet_list[i][1] = sheetUrl;
}
console.log(sheet_list);
const indexSheet = sheet.getSheetByName("목차");
indexSheet.getRange(1,1,sheet_list.length, sheet_list[0].length).setValues(sheet_list);
}
URL이 주루룩 있으니 지저분하다.
HYPERLINK를 이용해 sheet를 이동할 수 있도록 해준다.
function getSheetsNameAndCreateIndex() {
const sheet = SpreadsheetApp.getActiveSpreadsheet();
const sheets = sheet.getSheets();
let sheet_list = new Array();
for ( i in sheets ) {
const sheetName = sheets[i].getName();
const sheetUrl = `https://docs.google.com/spreadsheets/d/${sheet.getId()}/edit#gid=${sheets[i].getSheetId()}`;
const link = `=HYPERLINK("${sheetUrl}", "Link to Tab")`;
sheet_list[i] = new Array(2);
sheet_list[i][0] = sheetName;
sheet_list[i][1] = link;
}
console.log(sheet_list);
const indexSheet = sheet.getSheetByName("목차");
indexSheet.getRange(1,1,sheet_list.length, sheet_list[0].length).setValues(sheet_list);
}
반응형