前提・実現したいこと
Google Drive上にアップロード済の.xlsxファイルを既存のスプレッドシートにコピーするため、
いったんそのxlsxファイルをスプレッドシートに変換した上で、GASで操作しようとしています。
変換まではできたのですが、変換後のファイルを取得することができません。
発生している問題・エラーメッセージ
Exception: Invalid argument
該当のソースコード
GAS
1function test(){ 2 //ファイルをスプレッドシートに変換する 3 4 //元のfileを指定 5 var fileID = "XXX"; 6 //格納folderを指定 7 var folderID = "***"; 8 //タイトルを指定 9 var filename = "※テスト用 変換後データ"; 10 11 //fileの中身を取得 12 var filecontent = DriveApp.getFileById(fileID).getBlob(); 13 //オプションを設定 14 var option = { 15 "mimeType": "MimeType.GOOGLE_SHEET", 16 "parents": [{id: folderID}], 17 "title": filename 18 }; 19 //insertで変換 20 var cv_sheet = Drive.Files.insert(option, filecontent); 21 //変換後データのURLを取得 22 var cv_sheet_url = cv_sheet.getUrl(); 23 24 console.log(cv_sheet_url); 25}
試したこと
・フォルダを確認したところ「テスト用変換後データ」はちゃんとスプレッドシートの形でコピー作成されていました。
・insertメソッドの戻り値の型はFileクラスとのことなので、getUrlメソッドが使えると思ったのですが・・・何がおかしいのでしょうか。
ご意見・コメントよろしくお願いします。
補足情報
GAS
1 file = Drive.Files.insert(file, blob, option); 2 var doc = DocumentApp.openByUrl(file.embedLink); 3 var body = doc.getBody().getText(); 4 var docID = doc.getId(); 5 var docUrl = "https://docs.google.com/document/d/" + docID + "/edit";
などと、file.embedLink
を使って一旦URLを取得し、ID部分を抽出し、再度URLを生成しているように見えるのですが
同様にやっても動かず、またembedLinkオブジェクトというものの使い方が検索であまり出てこず、ここでご相談するに至りました。
わかる方いらっしゃいましたら解説していただけると非常に助かります。よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー