-
-
Save andrewroberts/c37d45619d5661cab078be2a3f2fd2bb to your computer and use it in GitHub Desktop.
| function exportSpreadsheet() { | |
| //All requests must include id in the path and a format parameter | |
| //https://docs.google.com/spreadsheets/d/{SpreadsheetId}/export | |
| //FORMATS WITH NO ADDITIONAL OPTIONS | |
| //format=xlsx //excel | |
| //format=ods //Open Document Spreadsheet | |
| //format=zip //html zipped | |
| //CSV,TSV OPTIONS*********** | |
| //format=csv // comma seperated values | |
| // tsv // tab seperated values | |
| //gid=sheetId // the sheetID you want to export, The first sheet will be 0. others will have a uniqe ID | |
| // PDF OPTIONS**************** | |
| //format=pdf | |
| //size=0,1,2..10 paper size. 0=letter, 1=tabloid, 2=Legal, 3=statement, 4=executive, 5=folio, 6=A3, 7=A4, 8=A5, 9=B4, 10=B5 | |
| //fzr=true/false repeat row headers | |
| //fzc=true/false repeat column headers | |
| //portrait=true/false false = landscape | |
| //fitw=true/false fit window or actual size | |
| //gridlines=true/false | |
| //printtitle=true/false | |
| //pagenum=CENTER/UNDEFINED CENTER = show page numbers / UNDEFINED = do not show | |
| //attachment = true/false dunno? Leave this as true | |
| //gid=sheetId Sheet Id if you want a specific sheet. The first sheet will be 0. others will have a uniqe ID. Leave this off for all sheets. | |
| //printnotes=false Set to false if you don't want to export the notes embedded in a sheet | |
| //top_margin=[number] Margins - you need to put all four in order fir it to works, and they have to be to | |
| //left_margin=[number] 2DP. So 0.00 for zero margin. | |
| //right_margin=[number] | |
| //bottom_margin=[number] | |
| //horizontal_alignment=CENTER Horizontal Alignment: LEFT/CENTER/RIGHT | |
| //vertical_alignment=TOP Vertical Alignment: TOP/MIDDLE/BOTTOM | |
| //scale=1/2/3/4 1= Normal 100% / 2= Fit to width / 3= Fit to height / 4= Fit to Page | |
| //pageorder=1/2 1= Down, then over / 2= Over, then down | |
| //sheetnames=true/false | |
| //range=[NamedRange] Named ranges supported - see below | |
| // EXPORT RANGE OPTIONS FOR PDF | |
| // Use these options or ... | |
| //gid=sheetId // must be included. The first sheet will be 0. others will have a uniqe ID | |
| //ir=false // seems to be always false | |
| //ic=false // same as ir | |
| //r1=Start Row number - 1 // row 1 would be 0 , row 15 wold be 14 | |
| //c1=Start Column number - 1 // column 1 would be 0, column 8 would be 7 | |
| //r2=End Row number | |
| //c2=End Column number | |
| // ... just use A1 notation | |
| // &range=Y1:AZ25&... | |
| var ssID = "12g8-tcRwFkcL7El...XdQAzSR7v8-geIR6r-IY"; | |
| var url = "https://docs.google.com/spreadsheets/d/"+ssID+"/export"+ | |
| "?format=pdf&"+ | |
| "size=0&"+ | |
| "fzr=true&"+ | |
| "portrait=false&"+ | |
| "fitw=true&"+ | |
| "gridlines=false&"+ | |
| "printtitle=true&"+ | |
| "sheetnames=true&"+ | |
| "pagenum=CENTER&"+ | |
| "attachment=true"; | |
| var params = {method:"GET",headers:{"authorization":"Bearer "+ ScriptApp.getOAuthToken()}}; | |
| var response = UrlFetchApp.fetch(url, params).getBlob(); | |
| // save to drive | |
| DriveApp.createFile(response); | |
| //or send as email | |
| /* | |
| MailApp.sendEmail(email, subject, body, { | |
| attachments: [{ | |
| fileName: "TPS REPORT" + ".pdf", | |
| content: response.getBytes(), | |
| mimeType: "application/pdf" | |
| }] | |
| });}; | |
| */ | |
| } |
I'm afraid these are all the config values I have found. Try "customscale=...", you never know ...
There some way to make a page breaker? how should I use "Range"? Thanks!
How did you find these parameters?
Update on the range parameter: the comment above "//need all the below to export a range" is not necessarily correct. Supplying a range in A1 notation works fine, for example: &range=Y1:AZ25&...
Update on the range parameter: the comment above "//need all the below to export a range" is not necessarily correct. Supplying a range in A1 notation works fine, for example: &range=Y1:AZ25&...
Thanks @kpaddock. Gist updated.
When creating a PDF from Google sheet with the above gs code, Unicode characters like U+1F7E5 (anything U+FFFF or greater) do not display. Anyone know how to fix this?
How can i set custom scale like scale=110%