2017-06-15 9 views
0

私はAngularJSまたはプレーンJavaScriptを使ってHTMLテーブルをXLSXに変換しようとしています。ダウンロードXLSXが壊れています

私は下のXLSファイルをダウンロードしてXLSファイルに変換していますが、XLSファイルが開かれています。

var blob = new Blob([template], {type: "data:application/vnd.ms-excel"}); 
window.navigator.msSaveOrOpenBlob(blob, "myExcel.xls"); 

しかし、私の要件は、XLSXでファイルを望んでいるので、私は

var blob = new Blob([template], {type: "data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}); 
window.navigator.msSaveOrOpenBlob(blob, "myExcel.xlsx"); 

、以下のように同じコードでファイルのMIMEタイプと拡張子を変更しかし、私は、ダウンロードのxlsxを開いていたときにファイルが破損していてMS Officeがエラーポップアップを起こしています。

私が間違っていることと、HTMLテーブルをどのようにしてに変換できますか?XLSX? 別のアイデアも受け付けています。

PS:テーブルは非常に複雑で、列内の行はすべてALASQL、JS-XLSXのようなプラグインは役に立ちません。

+0

この問題を解決できましたか? –

+0

@Agramer Angular側からはできないようです。サービス側(JAVA)でこれを行い、応答として送信されたXLSXをダウンロードします。 –

+0

ありがとうございます - Vue.jsで同様の問題が発生しています –

答えて

1

ただ、それはまた、XLSXと正常に動作しますapplication/vnd.ms-excel

変更をMIMEタイプに変更してみてください。

var blob = new Blob([template], {type: "application/vnd.ms-excel"}); 
window.navigator.msSaveOrOpenBlob(blob, "myExcel.xlsx"); 

このコードを試してください。

+0

すでに動作していますが、破損しているファイルです。 MSのようにいくつかのXLSXの特性を更新しているようです。 –

+0

はいを​​いいますか?はいを押すと開きます。私に知らせてもらえますか? – MehulJoshi

+0

いいえ、「はい」または「いいえ」を要求しません。ファイルの拡張子が無効で、まばらに聞こえることがあります。 OKを押して終了してください。 –

1

問題は、XLSXタイプにある可能性があります。この記事には、XLSファイルの圧縮されたセットであることが記載されています。読んで読んでください。私のスコアはまだ50を超えていないので、私はコメントすることはできませんので、私は答えとして投稿しています。

https://stackoverflow.com/a/37516332/1425168

関連する問題