Miscellaneous

Download and upload a file

 function 
  
 sendHttpPost 
 () 
  
 { 
  
 // 
  
 Download 
  
 a 
  
 file 
  
 now 
  
 ( 
 GET 
 ), 
  
 so 
  
 we 
  
 can 
  
 upload 
  
 it 
  
 in 
  
 the 
  
 HTTP 
  
 POST 
  
 below 
 . 
  
 const 
  
 response 
  
 = 
  
 UrlFetchApp 
 . 
 fetch 
 ( 
 'https://www.google.com/favicon.ico' 
 ); 
  
 const 
  
 fileBlob 
  
 = 
  
 response 
 . 
 getBlob 
 (); 
  
 const 
  
 payload 
  
 = 
  
 { 
  
 'fieldOne' 
  
 : 
  
 'value for field one' 
 , 
  
 'fieldTwo' 
  
 : 
  
 'value for field two' 
 , 
  
 'fileAttachment' 
 : 
  
 fileBlob 
  
 }; 
  
 // 
  
 Because 
  
 payload 
  
 is 
  
 a 
  
 JavaScript 
  
 object 
 , 
  
 it 
  
 will 
  
 be 
  
 interpreted 
  
 as 
  
 // 
  
 an 
  
 HTML 
  
 form 
 . 
  
 ( 
 We 
  
 do 
  
 not 
  
 need 
  
 to 
  
 specify 
  
 contentType 
 ; 
  
 it 
  
 will 
  
 // 
  
 automatically 
  
 default 
  
 to 
  
 either 
  
 'application/x-www-form-urlencoded' 
  
 // 
  
 or 
  
 'multipart/form-data' 
 ) 
  
 const 
  
 options 
  
 = 
  
 { 
  
 'method' 
  
 : 
  
 'post' 
 , 
  
 'payload' 
  
 : 
  
 payload 
  
 }; 
  
 UrlFetchApp 
 . 
 fetch 
 ( 
 'http://example.com/upload_form.cgi' 
 , 
  
 options 
 ); 
 } 

Zip and unzip a file

 function 
  
 zipUnzip 
 () 
  
 { 
  
 const 
  
 googleFavIconUrl 
  
 = 
  
 'https://www.google.com/favicon.ico' 
 ; 
  
 const 
  
 googleLogoUrl 
  
 = 
  
 'https://www.google.com/images/srpr/logo3w.png' 
 ; 
  
 // 
  
 Fetch 
  
 the 
  
 Google 
  
 favicon 
 . 
 ico 
  
 file 
  
 and 
  
 get 
  
 the 
  
 Blob 
  
 data 
 . 
  
 const 
  
 faviconBlob 
  
 = 
  
 UrlFetchApp 
 . 
 fetch 
 ( 
 googleFavIconUrl 
 ) 
 . 
 getBlob 
 (); 
  
 const 
  
 logoBlob 
  
 = 
  
 UrlFetchApp 
 . 
 fetch 
 ( 
 googleLogoUrl 
 ) 
 . 
 getBlob 
 (); 
  
 // 
  
 zip 
  
 now 
  
 references 
  
 a 
  
 blob 
  
 containing 
  
 an 
  
 archive 
  
 of 
  
 both 
  
 faviconBlob 
  
 and 
  
 // 
  
 logoBlob 
 . 
  
 const 
  
 zip 
  
 = 
  
 Utilities 
 . 
 zip 
 ([ 
 faviconBlob 
 , 
  
 logoBlob 
 ], 
  
 'google_images.zip' 
 ); 
  
 // 
  
 This 
  
 will 
  
 now 
  
 unzip 
  
 the 
  
 blobs 
 . 
  
 const 
  
 files 
  
 = 
  
 Utilities 
 . 
 unzip 
 ( 
 zip 
 ); 
 } 

Parse a csv file

 function 
  
 parseCsv 
 () 
  
 { 
  
 // 
  
 This 
  
 will 
  
 create 
  
 a 
  
 2 
  
 dimensional 
  
 array 
  
 of 
  
 the 
  
 format 
  
 // 
  
 [[ 
 a 
 , 
  
 b 
 , 
  
 c 
 ], 
  
 [ 
 d 
 , 
  
 e 
 , 
  
 f 
 ]] 
  
 const 
  
 csvString 
  
 = 
  
 'a,b,c 
 \n 
 d,e,f' 
 ; 
  
 const 
  
 data 
  
 = 
  
 Utilities 
 . 
 parseCsv 
 ( 
 csvString 
 ); 
  
 console 
 . 
 log 
 ( 
 data 
 ); 
 } 

Format a string

 function 
  
 formatString 
 () 
  
 { 
  
 // 
  
 You 
  
 can 
  
 use 
  
 sprintf-like 
  
 string 
  
 formatting 
  
 using 
  
 '%'-style 
  
 format 
  
 // 
  
 strings. 
  
 // 
  
 will 
  
 be 
 : 
  
 '123.456000' 
  
 Utilities 
 . 
 formatString 
 ( 
 '%11.6f' 
 , 
  
 123.456 
 ); 
  
 // 
  
 will 
  
 be 
 : 
  
 '   abc' 
  
 Utilities 
 . 
 formatString 
 ( 
 '%6s' 
 , 
  
 'abc' 
 ); 
 } 

base64 encode and decode a string

 function 
  
 base64Encoding 
 () 
  
 { 
  
 // 
  
 base64 
  
 encoding 
  
 is 
  
 used 
  
 to 
  
 encode 
  
 binary 
  
 data 
  
 to 
  
 a 
  
 text 
  
 format 
  
 // 
  
 you 
  
 may 
  
 need 
  
 to 
  
 do 
  
 this 
  
 if 
  
 your 
  
 transfer 
  
 method 
  
 can 
 't handle spaces, 
  
 // 
  
 non 
 - 
 English 
  
 characters 
 , 
  
 etc 
 . 
  
 // 
  
 We 
 'll instantiate a blob here for clarity. 
  
 const 
  
 blob 
  
 = 
  
 Utilities 
 . 
 newBlob 
 ( 
 'A string here' 
 ); 
  
 // 
  
 Let 
 's return the blob data as a byte[]. 
  
 const 
  
 encoded 
  
 = 
  
 Utilities 
 . 
 base64Encode 
 ( 
 blob 
 . 
 getBytes 
 ()); 
  
 // 
  
 This 
  
 will 
  
 log 
  
 'QSBzdHJpbmcgaGVyZQ==' 
  
 console 
 . 
 log 
 ( 
 encoded 
 ); 
  
 const 
  
 decoded 
  
 = 
  
 Utilities 
 . 
 base64Decode 
 ( 
 encoded 
 ); 
  
 // 
  
 This 
  
 will 
  
 log 
  
 the 
  
 original 
  
 string 
 . 
  
 console 
 . 
 log 
 ( 
 Utilities 
 . 
 newBlob 
 ( 
 decoded 
 ) 
 . 
 getDataAsString 
 ()); 
 } 
 function 
  
 getDateStringInTimeZone 
 () 
  
 { 
  
 // 
  
 Default 
  
 to 
  
 the 
  
 current 
  
 date 
  
 and 
  
 time 
 . 
  
 For 
  
 a 
  
 particular 
  
 date 
 , 
  
 pass 
  
 a 
  
 // 
  
 date 
  
 string 
  
 to 
  
 new 
  
 Date 
 () 
  
 such 
  
 as 
  
 // 
  
 "February 17, 2016 13:00:00 -0500" 
 . 
  
 Always 
  
 include 
  
 a 
  
 timezone 
  
 // 
  
 specifier 
  
 in 
  
 the 
  
 date 
  
 string 
 , 
  
 or 
  
 the 
  
 date 
  
 string 
  
 may 
  
 be 
  
 interpreted 
  
 // 
  
 using 
  
 a 
  
 different 
  
 timezone 
  
 than 
  
 you 
  
 intend 
 . 
  
 const 
  
 date 
  
 = 
  
 new 
  
 Date 
 (); 
  
 // 
  
 Default 
  
 to 
  
 the 
  
 account 
  
 timezone 
 . 
  
 To 
  
 customize 
 , 
  
 see 
  
 // 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 google 
 - 
 ads 
 / 
 api 
 / 
 reference 
 / 
 data 
 / 
 codes 
 - 
 formats 
 #timezone-ids 
  
 // 
  
 e 
 . 
 g 
 . 
  
 const 
  
 timezone 
  
 = 
  
 "Europe/Berlin" 
  
 const 
  
 timeZone 
  
 = 
  
 AdsApp 
 . 
 currentAccount 
 () 
 . 
 getTimeZone 
 (); 
  
 // 
  
 For 
  
 other 
  
 formats 
 , 
  
 see 
  
 // 
  
 https 
 : 
 // 
 developers 
 . 
 google 
 . 
 com 
 / 
 apps 
 - 
 script 
 / 
 reference 
 / 
 utilities 
 / 
 utilities 
 #formatdatedate-timezone-format 
  
 // 
  
 If 
  
 constructing 
  
 a 
  
 new 
  
 date 
  
 from 
  
 the 
  
 returned 
  
 date 
  
 string 
 , 
  
 be 
  
 sure 
  
 the 
  
 // 
  
 format 
  
 includes 
  
 the 
  
 time 
  
 zone 
  
 letter 
  
 'Z' 
 , 
  
 or 
  
 the 
  
 date 
  
 string 
  
 may 
  
 be 
  
 // 
  
 interpreted 
  
 using 
  
 a 
  
 different 
  
 timezone 
  
 than 
  
 you 
  
 intend 
 . 
  
 const 
  
 format 
  
 = 
  
 'MMM dd, yyyy HH:mm:ss Z' 
 ; 
  
 return 
  
 Utilities 
 . 
 formatDate 
 ( 
 date 
 , 
  
 timeZone 
 , 
  
 format 
 ); 
 } 

Get date in the past

 function 
  
 getDateInThePast 
 () 
  
 { 
  
 // 
  
 Number 
  
 of 
  
 milliseconds 
  
 in 
  
 a 
  
 day 
 . 
  
 const 
  
 MILLIS_PER_DAY 
  
 = 
  
 1000 
  
 * 
  
 60 
  
 * 
  
 60 
  
 * 
  
 24 
 ; 
  
 // 
  
 Default 
  
 to 
  
 the 
  
 current 
  
 date 
  
 and 
  
 time 
 . 
  
 For 
  
 a 
  
 particular 
  
 date 
 , 
  
 pass 
  
 a 
  
 // 
  
 date 
  
 string 
  
 to 
  
 new 
  
 Date 
 () 
  
 such 
  
 as 
  
 // 
  
 "February 17, 2016 13:00:00 -0500" 
 . 
  
 Always 
  
 include 
  
 a 
  
 timezone 
  
 // 
  
 specifier 
  
 in 
  
 the 
  
 date 
  
 string 
 , 
  
 or 
  
 the 
  
 date 
  
 string 
  
 may 
  
 be 
  
 interpreted 
  
 // 
  
 using 
  
 a 
  
 different 
  
 timezone 
  
 than 
  
 you 
  
 intend 
 . 
  
 const 
  
 date 
  
 = 
  
 new 
  
 Date 
 (); 
  
 // 
  
 Number 
  
 of 
  
 days 
  
 in 
  
 the 
  
 past 
 . 
  
 const 
  
 numDays 
  
 = 
  
 3 
 ; 
  
 return 
  
 new 
  
 Date 
 ( 
 date 
 . 
 getTime 
 () 
  
 - 
  
 numDays 
  
 * 
  
 MILLIS_PER_DAY 
 ); 
 } 
Create a Mobile Website
View Site in Mobile | Classic
Share by: