このスクリプトが添付ファイルを電子メールで送信しても添付ファイルが正しいスプレッドシートではないと思われ、Googleエラーページのように見えます。Googleスクリプトxls添付ファイルが表示されない
function getGoogleSpreadsheetAsExcel(){
try {
var ss = SpreadsheetApp.getActive();
var url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" + ss.getId() + "&exportFormat=xlsx";
Logger.log(url);
var params = {
method : "get",
headers : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
muteHttpExceptions: true
};
var blob = UrlFetchApp.fetch(url, params).getBlob();
blob.setName(ss.getName() + ".xlsx");
MailApp.sendEmail("[email protected]", "Google Sheet to Excel", "The XLSX file is attached", {attachments: [blob]});
} catch (f) {
Logger.log(f.toString());
}
}
。 [17-03-24 11:51:17:145 CST]例外:https://www.googleapis.com/drive/v3/files/MYFILEIDWASHERE/export?mimeType=application/vnd.openxmlformats-officedocumentでリクエストが失敗しました。 { "エラー":{ "エラー":[ { "ドメイン": "グローバル"、 "理由" "NOTFOUND"、 "メッセージ" spreadsheetml.sheet&キー= APIKEYWASHEREコード404切り捨てサーバの応答を返さ: "ファイルが見つかりません:MYFILEIDWASHERE ...(完全な応答を調べるためにmuteHttpExceptionsオプションを使用してください) – OblongMedulla
私はエラーがスプレッドシートの共有によるものであることを認識しました - 私はそれを公開しています。 – OblongMedulla
残念ながら私は関連情報を見つけることができません**おそらく**あなたは1)エクスポートする前にpublicに許可を設定し、2)エクスポートし、3)次にsその本来の許可に対する許可。 **私は** 1)と3)は[Permissions API](https://developers.google.com/drive/v3/reference/permissions)で行うことができると思います。がんばろう。 :) –