Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2020
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. function onOpen() {
  2. var ss = SpreadsheetApp.getActiveSpreadsheet();
  3. var csvMenuEntries = [{
  4. name: "export as csv files",
  5. functionName: "saveAsCSV"
  6. }];
  7. ss.addMenu("csv", csvMenuEntries);
  8. };
  9.  
  10. function saveAsCSV() {
  11. // gets the destination folder by their ID.
  12. var folder = DriveApp.getFolderById("1kWASyT9zzN_HtqMDdKr8M64SWDvP0oQR");
  13.  
  14. // Get sheet's name
  15. var sheet = SpreadsheetApp.getActiveSpreadsheet();
  16.  
  17. // append ".csv" extension to the sheet name
  18. var filename = sheet.getName() + ".csv";
  19.  
  20. // remove files inside the folder
  21. var folderId = "1kWASyT9zzN_HtqMDdKr8M64SWDvP0oQR";
  22. var getfolder = DriveApp.getFolderById(folderId);
  23. var files = getfolder.getFilesByName(filename);
  24. if (files.hasNext()) {
  25. files.next().setTrashed(true);
  26. }
  27.  
  28.  
  29. // convert all available sheet data to csv format
  30. var csvFile = convertRangeToCsvFile_(filename, sheet);
  31.  
  32. // create a file in the Docs List with the given name and the csv data
  33. folder.createFile(filename, csvFile);
  34. };
  35.  
  36. function convertRangeToCsvFile_(csvFileName, sheet) {
  37. // get available data range in the spreadsheet
  38. var activeRange = sheet.getDataRange();
  39. try {
  40. var data = activeRange.getValues();
  41. var csvFile = undefined;
  42.  
  43.  
  44. // loop through the data in the range and build a string with the csv data
  45. if (data.length > 1) {
  46. var csv = "";
  47. for (var row = 0; row < data.length; row++) {
  48. for (var col = 0; col < data[row].length; col++) {
  49. if (data[row][col].toString().indexOf(",") != -1) {
  50. data[row][col] = "\"" + data[row][col] + "\"";
  51. }
  52. }
  53.  
  54.  
  55. // join each row's columns
  56. // add a carriage return to end of each row, except for the last one
  57. if (row < data.length - 1) {
  58. csv += data[row].join(",") + "\r\n";
  59. } else {
  60. csv += data[row];
  61. }
  62. }
  63. csvFile = csv;
  64. }
  65. return csvFile;
  66. } catch (err) {
  67. Logger.log(err);
  68. Browser.msgBox(err);
  69. }
  70. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement