2016-07-11 10 views
1

に自動メールに、Googleのスプレッドシートから読み込みます:取り付けGoogleドキュメントリンクは、次のコードは、次のエラーを与えて、動作していないスクリプト

var atta = DriveApp.getFileByID('1XD...c'); //ID is Folder and Google Doc ID I      want to attach 

MailApp.sendEmail(emailto, subject, message, { 
    cc: emailcc, 
    attachments:[atta] 
}); 

最終的に、私はGoogleスプレッドシートからのリンクで読みたい:

var range = active_actions.getRange(i+1,16) //active_actions is the spreadsheet and i+1,16 is the cell with the link 

var link = range.getFormula(); 
var atta = DriveApp.getFileByID(link); 
MailApp.sendEmail(emailto, subject, message, { 
    cc: emailcc, 
    attachments:[atta] 
}); 

答えて

1

これはそれほど難しくありません。 Google Docs/Spreadsheets/etc。添付ファイルとしてEメールに記載することはできません。これは、実際には「物理的な文書」ではないためです。それは雲の上にのみ存在します。代わりに、URLを電子メールに入れて、受信者に添付ファイルのように見えるDocが付いた小さなボックスを一番下に置きます。

これは完璧ではないが、それは十分です。詳細については、あなたがこの問題の要求やGoogleのAppスクリプトの問題のページを見ることができます:

https://code.google.com/p/google-apps-script-issues/issues/detail?id=585&q=attachment%20types&sort=-stars&colspec=Stars%20Opened%20ID%20Type%20Status%20Summary%20Component%20Owner

EDIT(SSで取り出したデータを説明するために):

範囲のオブジェクトからデータを取得するには、(テキスト、数字など)、この形式を使用する必要があります。

var range = getRange(); 
var rangeData; 
var cellValue; 

while (range.hasNext()) { 
    rangeData = range.next(); 
    cellValue = rangeData.getValue(); 
} 

アキュムレータ変数の場合、1つのリスト/文字列/ etcにすべてのデータビットを取得できます。

今、あなたはあなたのデータを持っていることを、あなたはそれを、電子メール、またはそれで何かを行うことができます。

+0

はい、ありがとうございます。さて、私はリンクを読むつもりです:var range = active_actions.getRange(i + 1,16) var link = range.getFormula()しかし、何も返されません。また、私はセル内の実際のリンクを配置しなければならないのか、私は今、テキスト –

+0

を使用することができ、私はGmailが自動的にハイパーリンクとして任意のwww.sathue.ending解釈すべきであるとしてあなたは、プレーンテキストを使用することができます –

+0

使用しようとしています。あなたが持っていると思うもう一つの問題(正確に言うのは難しい)は、あなたが複数のものから一つの物体を得ることを試みているということです。 .getRange()getは範囲で、セルのグループです。それが単なるセルであったとしても、内容を取得するために範囲の内容を繰り返し処理する必要があります。 – EvSunWoodard

関連する問題