반응형
Sheet 데이터를 BigQuery에 저장할 때,
나이, 성별을 필수 값으로 입력하고 싶다.
dataNullCheck 함수와, reqIdx 를 추가한다.
function insertSheetData() {
const sheetUrl = SpreadsheetApp.getActiveSpreadsheet().getUrl();
const sheetName = "Sheet3"
const sheet = SpreadsheetApp.openByUrl(sheetUrl).getSheetByName(sheetName);
const table_id = "insert_test";
const reqIdx = [
{name:'이름(A' , index:1}
, {name:'나이(B' , index:2}
, {name:'성별(C' , index:3}
];
const validationCheck = dataNullCheck(sheet, 2, reqIdx);
if ( validationCheck != "done" ) {
console.log(validationCheck + "는 필수입력 값입니다.")
return;
}
const colInfo = {startRow:2, startColumn:1};
const saveTime = getDateTime("BQ");
const addValues = {
status : "Y"
, saveTime : saveTime
};
const resultFlag = loadSpreadsheet(sheet, global_datasetId, table_id, colInfo, addValues);
console.log(`Result Flag : ${resultFlag}`);
}
/**
* 데이터 null 체크. like validation check
* @param {object} spreadSheet = 해당 function을 호출한 spreadsheet
* @param {string} startRow = 시작 행번호
* @param {object} keyIdx = 키값 정보
*/
function dataNullCheck (spreadSheet, startRow, keyIdx) {
for ( q in keyIdx ) {
var endRow = spreadSheet.getLastRow()-startRow+1;
var data = spreadSheet.getSheetValues(startRow, keyIdx[q].index, endRow, 1);
for ( i in data ) {
var value = data[i];
if ( isNull(value) ) {
return keyIdx[q].name + (parseInt(i)+parseInt(startRow)) + ")";
}
}
}
return "done";
}
반응형
'GCP > Apps Script' 카테고리의 다른 글
Apps Script로 Google Sheets의 Sidebar를 이용한 데이터 선택 (0) | 2022.09.06 |
---|---|
Apps Script로 Google Sheets의 소계 데이터 만들기 (0) | 2022.09.06 |
Apps Script 라이브러리 생성해서 다른 Apps Script에서 사용하기 (0) | 2022.09.06 |
Apps Script로 Google Sheets의 데이터를 BigQuery에 Load (0) | 2022.09.06 |
Apps Script로 Google Sheets의 Number Format 설정하기 + Date Format (0) | 2022.09.06 |