ご存知でしたら、ご教授下さい。
下記の添付ファイルダウンロードAPIにて、Excelデータ(xlsx)をダウンロードする処理を作成しております。
https://sites.google.com/a/sateraito.jp/nextset-dounyuu/Home/wakufuro-ji-neng/api#TOC-API16
下記のコードを実行すると、ダウンロードは出来るのですがファイルが破損している事になり、開けません。。
アップロードしたexcelファイルとダウンロードしたexcelファイルをさくらエディタで開くと文字コードが違いました。
※アップロードしたexcelファイル:shift-jis ダウンロードしたexcelファイル:utf-8
さくらエディタでダウンロードしたexcelファイルをshift-jisにしても無駄でした。。
やり方をご存知ないでしょうか?
※[]内はあっている前提です。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>TEST</title> <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script> <![endif]--> <script type="text/javascript" src="http://code.jquery.com/jquery-2.2.3.min.js"></script> </head> <body> <button onclick="clickEvent()">ボタン</button> <a id="download" download="test.xlsx">ダウンロード</a> <script> function clickEvent() { downloadFile([doc_id],[file_id]); } function downloadFile(doc_id,file_id) { const url = "https://workflow.nextset.jp/[テナント名]/api/public/attach/download"; const xml = new XMLHttpRequest(); xml.open("POST", url, false); xml.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); var data = new Map(); var access_token = getAccessToken(); data.set('access_token', '[access_token]'); data.set('impersonate_email', '[impersonate_email]'); data.set('application_id', '[application_id]'); data.set('doc_id', [doc_id]); data.set('file_id', [file_id]); var param = [...data.entries()].map(d => d.join('=')).join('&') xml.send(param) var blob = new Blob([xml.response], { type: 'application/octet-stream' }, "test.xlsx"); const a = document.getElementById('download'); a.href = window.URL.createObjectURL(blob); return blob; } </script> </body> </html>
以上。よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/13 05:45