Guest User

Untitled

a guest
Dec 12th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.73 KB | None | 0 0
  1. function listFilesFromFolderIntoCurrentSpreadsheet() {
  2. var folderId = '01234567890aBcDeFgHijKlMnOpQ'; // use your own Id
  3. var folder = DriveApp.getFolderById(folderId);
  4. var contents = folder.getFiles();
  5. var sheet = SpreadsheetApp.getActiveSheet(); // careful with the spreadsheet, it will be cleared
  6. var file;
  7. var docNumberRegExp;
  8. var docNumberMatches;
  9. var docNumber;
  10. var docName;
  11. var title;
  12. var fileId;
  13. var fileUrl;
  14. var mimeType;
  15. var docType;
  16. var description;
  17. var purpose;
  18. var authors;
  19. var authorList;
  20. var editorList;
  21. var responsible;
  22. var responsibleName;
  23. var responsibleMail;
  24. var responsibleElements;
  25. var creationDate;
  26. var modificationDate;
  27. var size;
  28. var rowData;
  29.  
  30. sheet.clear();
  31.  
  32. sheet.appendRow(["Number", "Title", "URL", "Type", "Description", "Purpose", "Authors", "Responsible/Owner", "Due Date", "Last Modification", "Creation Date"]);
  33.  
  34. while(contents.hasNext()) {
  35. file = contents.next();
  36.  
  37. // title and number
  38. docName = file.getName();
  39. docNumber = "";
  40. docNumberRegExp = new RegExp(/([Mm]emo\s+[0-9]+)\s*(-|—)\s*(.*)/);
  41. docNumberMatches = docNumberRegExp.exec(docName);
  42. if (docNumberMatches) {
  43. docNumber = docNumberMatches[1];
  44. title = docNumberMatches[3];
  45. } else {
  46. title = docName;
  47. }
  48.  
  49. // fileId and URL builder
  50.  
  51. fileUrl = file.getUrl();
  52.  
  53. // type from MIME type
  54. mimeType = file.getMimeType();
  55. docType = "";
  56. switch(mimeType) {
  57. case "application/vnd.google-apps.spreadsheet":
  58. docType = "Google Spreadsheet";
  59. break;
  60. case "application/vnd.google-apps.document":
  61. docType = "Google Document";
  62. break;
  63. case "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
  64. docType = "OpenOffice Document";
  65. break;
  66. case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":
  67. docType = "OpenOffice Spreadsheet";
  68. break;
  69. case "application/vnd.openxmlformats-officedocument.presentationml.presentation":
  70. docType = "OpenOffice Presentation";
  71. break;
  72. case "application/x-iwork-pages-sffpages":
  73. docType = "Pages Document";
  74. break;
  75. case "application/x-iwork-numbers-sffnumbers":
  76. docType = "Numbers Spreadsheet";
  77. break;
  78. case "application/vnd.ms-project":
  79. docType = "MS Project document";
  80. break;
  81. case "application/pdf":
  82. docType = "PDF document";
  83. break;
  84. case "application/x-gzip":
  85. docType = "Gzipped document";
  86. break;
  87. case "application/x-zip":
  88. docType = "Zipped document";
  89. break;
  90. case "image/png":
  91. docType = "PNG image";
  92. break;
  93. case "image/jpeg":
  94. docType = "JPEG image";
  95. break;
  96. default:
  97. docType = mimeType;
  98. }
  99.  
  100. description = file.getDescription();
  101. purpose = "TBD";
  102.  
  103. // get and create email link to owner
  104. owner = file.getOwner();
  105. responsibleName = file.getOwner().getName();
  106. responsibleMail = file.getOwner().getEmail();
  107.  
  108. responsibleElements = [ "=HYPERLINK(\"", "mailto:",responsibleMail, "\"; \"",responsibleName, "\")"];
  109. responsible = responsibleElements.join("");
  110.  
  111. // get author's names
  112. authorList = [];
  113. editorList = file.getEditors()
  114. editorList.forEach(function(editor) {
  115. authorList.push(editor.getName())
  116. }
  117. )
  118. authors = authorList.sort().join(", ");
  119.  
  120. creationDate = file.getDateCreated();
  121. modificationDate = file.getLastUpdated();
  122. // size = file.getSize();
  123.  
  124. rowData = [docNumber, title, fileUrl, docType, description, purpose, authors, responsible, "TBD", modificationDate, creationDate];
  125. sheet.appendRow(rowData);
  126. }
  127. };
Add Comment
Please, Sign In to add comment