3

スプレッドシート アプリ自体には、特定のシートのみを印刷するオプションがあります。アプリ内から PDF を作成するときにグリッド線をオフにすることもできます。PDFを作成するときにスクリプトを介してこれを行う方法はありますか?

4

7 に答える 7

4

次のコード スニペットをご覧ください: https://gist.github.com/4169590

Google スプレッドシートに組み込まれている PDF としてのダウンロード機能を使用しているため、グリッド線の非表示やワークシートの指定など、同様のカスタマイズが可能です。GET パラメータをいじって、望ましい出力を取得します。最後に、スクリプトは PDF ファイルを blob に変換し、独自のスクリプトでさらに操作できます。ただし、これを実行するには、スプレッドシート フィード スコープの追加の承認が必要です。

それが役に立てば幸い。

于 2012-11-29T15:05:30.857 に答える
3

@rcknr、私のために働いた、以下のより多くのオプション。(出典: http://productforums.google.com/forum/#!msg/apps-script/wQvCF6yY1Qk/R0uyVmf-Xx0J )

このような URL: https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=tOHm3f8tdIxf7tSZzWvBGiA&gid=0&size=legal&fitw=true&gridlines=false&portrait=false&exportFormat=pdf

その他の設定

fmcmd=12
size=legal/A4
fzr=true/false
portrait=false/true
fitw=true/false
gid=0/1/2  
gridlines=false/true
printtitle=false/true
sheetnames=false/true
pagenum=UNDEFINED
attachment=false/true  

true/false が必要な場合もありますが、代わりに 0/1 を使用できませんでした。

于 2013-02-17T23:33:59.653 に答える
2

スプレッドシートの特定のシートの PDF を作成するための Google アプリ スクリプト。

function generatePdf() {
    var originalSpreadsheet = SpreadsheetApp.getActive();

    var sourcesheet = originalSpreadsheet.getSheetByName("Sheet - Name");
    var sourcerange = sourcesheet.getRange('A1:G7');  // range to get - here I get all of columns which i want
    var sourcevalues = sourcerange.getValues();
    var data = sourcesheet.getDataRange().getValues();

    var newSpreadsheet = SpreadsheetApp.create("Spreadsheet to export"); // can give any name.
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var projectname = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = sourcesheet.copyTo(newSpreadsheet);
    var destrange = sheet.getRange('A1:G7');
    destrange.setValues(sourcevalues);
    newSpreadsheet.getSheetByName('Sheet1').activate();
    newSpreadsheet.deleteActiveSheet();

    var pdf = DriveApp.getFileById(newSpreadsheet.getId());
    var theBlob = pdf.getBlob().getAs('application/pdf').setName("name");

    var folderID = "Folder Id"; // Folder id to save in a folder.
    var folder = DriveApp.getFolderById(folderID);
    var newFile = folder.createFile(theBlob);

    DriveApp.getFileById(newSpreadsheet.getId()).setTrashed(true); 
}
于 2016-04-21T10:31:54.047 に答える
0

残念ながら、Apps Script では現在これを行うことはできませんが、Issue trackerで機能リクエストを提出できます。

于 2012-09-26T23:15:25.493 に答える
0

PDF へのエクスポートを選択すると、オプション付きのメッセージ ボックスが表示されます。このメッセージボックスの右側には、5 つのチェックボックスがあります。2 番目のものを確認すると、エクスポートでグリッド線が非表示になります。英語以外の言語を使用しているため、このチェックボックスのラベルがわかりません。

幸運を!

- ロバート

于 2012-09-30T16:32:59.397 に答える
0

これは解決策です

var blob = DriveApp.getFileById(idsheet).getAs("application/pdf");
blob.setName("name".pdf");
var dossier = DriveApp.getFolderById("0Bx71KaTqXxQPQUYyVEVyYkJ0bEU");
dossier.createFile(blob);
于 2016-12-14T22:19:39.787 に答える