Last active
May 5, 2020 01:57
-
-
Save consnam/5b54ca82dfb6716aab9af08641414dcb to your computer and use it in GitHub Desktop.
export 대상 시트 변경
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 스마트시트의 데이터를 구글 시트로 export 하는 스크립트입니다. | |
// checkbox 데이터의 경우 check가 되어있으면 Y, 안되어있으면 N으로 표시했습니다. | |
function SSheetToGSheet() { | |
var SHEET_ID = ''; //여기에 스마트시트의 sheet id를 넣는다. | |
//스마트시트 데이터를 에서 data 가져오기 | |
var json = getSmartsheetSheet(SHEET_ID); | |
var columnData = json.columns; | |
var rowData = json.rows; | |
var ss = SpreadsheetApp.getActiveSpreadsheet(); | |
var sheet = ss.getSheets()[0]; | |
sheet.clear(); | |
var exportData = [], celldata = [], | |
data, temp; | |
// column title을 첫 행에 넣기 | |
for (var index in columnData){ | |
celldata.push(columnData[index].title) | |
} | |
exportData.push(celldata); | |
celldata = []; | |
// row data를 가져오기 | |
// cell 단위로 가져와서 displayValue나 value가 없으면 공백으로 둠.(undefined를 제거하기 위함) | |
for (var i in rowData){ | |
data = rowData[i]; | |
for (var j in data.cells){ | |
if(columnData[j].type === "CHECKBOX") | |
celldata.push((data.cells[j].value) ? 'Y' : 'N'); | |
else if(data.cells[j].displayValue != null) | |
celldata.push(data.cells[j].displayValue); | |
else if(data.cells[j].value != null){ | |
celldata.push(data.cells[j].value); | |
} | |
else | |
celldata.push(""); | |
} | |
exportData.push(celldata); | |
celldata = []; | |
} | |
//range 지정 후 데이터 붙여넣기 | |
var dataRange = sheet.getRange(1, 1, exportData.length, columnData.length); | |
dataRange.setValues(exportData); | |
} | |
// 스마트시트의 시트의 데이터를 가져오는 함수 | |
function getSmartsheetSheet(sheetid) { | |
var scriptProperties = PropertiesService.getScriptProperties(); | |
var accessToken = scriptProperties.getProperty('AuthKey'); | |
var url = 'https://api.smartsheet.com/2.0/sheets/' + sheetid; | |
var options = { | |
'method': 'get', | |
'headers': { | |
"Authorization": "Bearer " + accessToken} | |
}; | |
var response = UrlFetchApp.fetch(url, options); | |
var json = JSON.parse(response.getContentText()); | |
return json; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment