2016-11-08 2 views
-1

Noob Coding hier, versuchen zu lernen, ...Nehmen Sie einen Bereich von Zellen aus einer Google-Tabelle

Ich versuche, eine Reihe von Zellen in einer Google-Tabelle zu nehmen (nicht angrenzend an jede Seite/Blattrand) Konvertieren Sie den Bereich in PDF, und senden Sie die PDF-Datei als E-Mail-Anhang per E-Mail an eine angegebene Adresse. Ich kann ein vorgefertigtes Addin verwenden, aber dann werde ich nicht lernen. Eine Person lernt nur, indem sie Fragen stellt.

Ich google für Antworten und kam auf diese Website (https://ctrlq.org/code/19869-email-google-spreadsheets-pdf). Problem ist, dieses Skript sendet alle Blätter in einer Zip-Datei. Ich möchte das nicht tun. Ich möchte nur als PDF eine Reihe ausgewählter Zellen senden, die nur auf dem ersten Blatt und als PDF, NICHT als ZIP-Datei gespeichert sind.

Mein fast nicht existent javascript Bildung mir sagt, dass mein Skript verwendet den folgenden Code-Schnipsel, die relevanten Daten zu erhalten: (Natürlich, ich könnte falsch sein ...)

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

Ich weiß nicht, ob Ich habe das richtige Snippet, weshalb ich die URL seiner Quelle eingefügt habe. Jedenfalls möchte ich einfach einen Bereich senden, der bei Zeile 2 Spalte 3 beginnt und bei Zeile 31 Spalte 12 endet. 7 Tage später möchte ich ein anderes Skript verwenden, um einen anderen Bereich zu senden.

Wie kann ich dieses Skript ändern, um mein Ziel zu erreichen?

Danke an alle, die helfen können!

+1

Willkommen bei Stackoverflow. Die [Google Apps Script-Referenz] (https://developers.google.com/apps-script/reference/calendar/) ist ein guter Ausgangspunkt. Wenn Sie die Referenz für [Bereiche] (https://developers.google.com/apps-script/reference/spreadsheet/range) überprüfen, werden Sie feststellen, dass es keine Methode gibt, den Bereich als PDF zu erhalten. Es gibt auch keinen für Arbeitsblätter, nur für ganze Arbeitsblätter, daher müssen Sie eine Arbeitsblattkopie erstellen, die nur diesen Bereich und sonst nichts enthält. –

Antwort

0

Zuerst müssen Sie verstehen, was Sie verlangen und wie es wirklich heißt.

Wie in dem Kommentar von Robin Gertenbach erwähnt, sollten Sie zuerst die Google Documentation betrachten. Erst nachdem du die Informationen ausgeschöpft hast, solltest du woanders nach Codeschnipsel etc. suchen. Der Grund, warum ich das sage ist, dass ein Bereich höchstwahrscheinlich nicht das ist, was du denkst. Das Bereichsobjekt selbst ist keine Daten, die Sie benötigen, sondern eine Klasse, mit der Sie stattdessen Informationen abrufen können.

Zum Beispiel, wenn Sie Werte wollen, würden Sie etwas wie SpreadsheetApp.getActiveRange().getValues() tun, die ein 2 Array von String-Werten zurückgeben würde. Es gibt jedoch keine solche Methode, um eine Zeichenkette als PDF auszugeben. Logischerweise ist ein PDF ein Dokument. Um ein PDF zu erhalten, müssen Sie ein Dokument exportieren. Der niedrigste Dokumententyp ist die eigentliche Tabelle und in der Dokumentation können Sie sehen, dass here

Alles andere, was Sie denken können, kommt von Javascript und nicht Google Apps Script, so dass Sie dort aussehen könnten. Die einzige Alternative besteht darin, eine neue Tabelle zu erstellen und sie als PDF zu speichern und dann die Tabelle zu löschen.

Das Snippet, das Sie haben, erstellt einfach eine Variable mit der gesamten Tabelle als Objekt.

Verwandte Themen