Skip to content

Instantly share code, notes, and snippets.

@consnam
Last active May 5, 2020 01:57
Show Gist options
  • Save consnam/5b54ca82dfb6716aab9af08641414dcb to your computer and use it in GitHub Desktop.
Save consnam/5b54ca82dfb6716aab9af08641414dcb to your computer and use it in GitHub Desktop.
export 대상 시트 변경
// 스마트시트의 데이터를 구글 시트로 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