2016-11-08 7 views
-1

を学ぼうと、ここでnoobのコーディングからセルの範囲を取り、私は(任意のページ/枚の国境に隣接していない)複数のGoogleスプレッドシートでセルの範囲を取るしようとしています範囲をpdfに変換し、指定されたアドレスに電子メールの添付ファイルとしてpdfを電子メールで送信します。私は事前に書いたアドインを使うことができますが、それから私は学ばないでしょう。人は質問するだけで学びます。...</p> <p>をGoogleのスプレッドシート

私はグーグルで答えを得て、このウェブサイト(https://ctrlq.org/code/19869-email-google-spreadsheets-pdf)にアクセスしました。問題は、このスクリプトはすべてのシートをzipファイルに送信することです。私はこれをしたくありません。私はちょうどpdfとして、最初のシートとpdfとして、zipファイルではなく、選択されたセルの範囲を送信したいと思います。

私はほとんど存在しないjavascriptの教育は私のスクリプトは、関連するデータを取得するために、次のコードスニペットを使用していることを私に語った: (もちろん、私は間違っているかもしれない...)

// Get the currently active spreadsheet URL (link) 
// Or use SpreadsheetApp.openByUrl("<<SPREADSHEET URL>>"); 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 

私はかどうかを知りません私は正しいスニペットを持っています。そのため、そのソースのURLが含まれています。とにかく、2行目の3行目から31行目の12行目までの範囲を送信したいだけです。7日後に別のスクリプトを使用して別の範囲を送信したいとします。

目標を達成するためにこのスクリプトを変更するにはどうすればよいですか?

お手伝いいただける皆様、ありがとうございます!

+1

ようこそStackoverflow。 [Google Apps Script Reference](https://developers.google.com/apps-script/reference/calendar/)は良い出発点です。 [範囲](https://developers.google.com/apps-script/reference/spreadsheet/range)の参照をチェックすると、pdfとして範囲を取得する方法がないことがわかります。スプレッドシート全体に対してのみ、シート用に1つもないので、その範囲のみを含むスプレッドシートコピーを作成する必要があります。 –

答えて

0

まず最初に、あなたが求めていることと、実際に何が呼び出されているのかを理解する必要があります。

Robin Gertenbachのコメントに記されているように、まずGoogle Documentationをご覧ください。あなたが情報を使い果たした後でなければ、コードスニペットなどの他の部分を見るべきです。私がこれを言っているのは、範囲があなたが思うものではない可能性が最も高いからです。範囲オブジェクト自体は必要なデータではなく、代わりに情報を取得するために使用できるクラスです。

たとえば、値を入力する場合は、SpreadsheetApp.getActiveRange().getValues()のような処理を行い、2つの文字列値の配列を返します。しかし、文字列をpdfとして出力する方法はありません。論理的にPDFはドキュメントなので、PDFを取得するにはドキュメントをエクスポートする必要があります。最も低いドキュメントタイプは実際のスプレッドシートで、ドキュメントではそれを見ることができますhere

他の点については、Google Apps ScriptではなくJavascriptに由来すると考えられます。ここでの唯一の選択肢は、新しいスプレッドシートを作成してpdfとして保存してからスプレッドシートを削除することです。

スニペットは、スプレッドシート全体をオブジェクトとして変数を作成するだけです。

関連する問題