Skip to content

Instantly share code, notes, and snippets.

@eojji
Created July 3, 2018 04:47
Show Gist options
  • Save eojji/dda5ede24e9f55bbfe22944f5c4328a6 to your computer and use it in GitHub Desktop.
Save eojji/dda5ede24e9f55bbfe22944f5c4328a6 to your computer and use it in GitHub Desktop.
Pick and Copy Sheet, Query Exact: /folders. G folder copy https://cafe.naver.com/eojji/320
function pacProcessForm_(url, pickAndCopyFolder) {
var appMessage = {};
appMessage.message = 'Pick and Copy data';
var thisName = 'PaC Process Form';
appMessage.title = thisName;
appMessage.url = url;
var id;
var rtn = url.match(/[-\w]{25,}/);
if (rtn) {
id = rtn[0];
} else {
console.warn('Error input url: %s - %s', url, thisName);
appMessage.message = 'Error get ID';
return appMessage;
}
var ss;
try {
ss = SpreadsheetApp.openById(id);
} catch(e) {
console.warn('Error: %s, %s - PaC SpreadsheetApp.openById: %s', e.name, e.message, id);
appMessage.message = 'Error: '+e.name+', '+e.message;
return appMessage;
}
var pacSsName = ss.getName();
appMessage.title = pacSsName+' - '+thisName;
appMessage.url = ss.getUrl();
// column = 3; // Cell: C1 ~ Cn
var sheet = ss.getSheets()[0];
var lastRow = sheet.getLastRow();
if (!lastRow || lastRow < 1) {
appMessage.message = 'Not found data';
return appMessage;
}
var values = sheet.getRange(1, 3, lastRow, 1).getValues();
if (!values || values.length < 1) {
appMessage.message = 'No data - sheet.getRange(1, 3, lastRow, 1).getValues';
return appMessage;
}
var data = listFilesByPacSSheet_(values);
if (!data) {
appMessage.message = 'No data - listFilesByPacSSheet';
return appMessage;
}
var parentId = pickAndCopyFolder.id;
var goalFolder = insertFolderById_(parentId, pacSsName);
if (!goalFolder || !goalFolder.id) {
console.warn('Error: %s, %s - insertFolderById(parentId: %s, %s)', goalFolder.name, goalFolder.message, parentId, pacSsName);
appMessage.message = 'Error '+goalFolder.name+', '+goalFolder.message;
return appMessage;
}
appMessage.url = goalFolder.alternateLink; // ss.getUrl();
appMessage.title = goalFolder.title; // ss.getName();
appMessage.message = 'Create folder'; // 'Create Spreadsheet';
var ssFolder = createFolderSpreadsheet_(goalFolder.title, goalFolder.id);
if (!ssFolder) {
appMessage.message = 'Error Create _gfolder Spreadsheet'; // 'Create Spreadsheet';
return appMessage;
}
var sheetFolder = ssFolder.getSheetByName('folder');
sheetFolder.appendRow([pacSsName, '', '', 0, 0, '', '', 3, parentId]);
// var sheetFolder = ssFolder.getSheets()[0];
// pac 시트에서 폴더와 파일을 분리해서 gfolder 시트에 각각 기록한다.
var sheetFiles = ssFolder.getSheetByName('files');
sheetAppendFiles_(goalFolder.id, data, sheetFolder, sheetFiles);
setFolderSSIdProperty(ssFolder.getId());
appMessage.url = ssFolder.getUrl();
appMessage.title = ssFolder.getName();
appMessage.message = 'Create gfolder Spreadsheet';
// trigger 기동
triggerAfterByName('trigCpFolderBySheet_', 1000);
return appMessage;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment