2017-06-05 2 views
0

JavascriptファイルにExcelスプレッドシートを作成したい文字列があります。私は次のコードを使用します:Javascriptを使用して自動的にExcelスプレッドシートとして開くファイルを作成するにはどうすればよいですか?

var url = 'data:application/vnd.ms-excel,' + encodeURIComponent(excel); 
location.href = url; 

ここで "excel"は問題の文字列です。

これは完璧に機能します。ファイルをダウンロードしてExcelスプレッドシートとして開くことができ、正しくフォーマットされています。しかし、ファイルを開くときに、開くプログラムを選択する必要があります。プログラムのリストから選択することなく、自動的にExcelでファイルを開くことができるようにする方法はありますか?

+0

ファイルをダウンロードすると、ローカルコンピュータはファイルを開くために使用するプログラムを決定します。あなたは.xlsxのようなデフォルトのExcel拡張子でファイルを命名していますか?使用しているブラウザによっては、そこで調整する必要のある設定があるかもしれません。 – David

+0

ええ、.xlsxを使ってファイルを命名するのは、私が現在やろうとしていることですが、私が管理できるベストは "url"変数の最後に ".xlsx"を置くことです。もちろん、これはスプレッドシートの最後のセルに ".xlsx"を入れて、スプレッドシートとして自動的に開くのではありません。 .xlsx拡張子を正しく与える方法を知っていますか? – anon

+0

ファイル名の末尾に追加するとそのトリックが行われます。この回答はあなたが探しているものかもしれません。https://stackoverflow.com/questions/15354261/how-to-change-the-name-of-file-while-exporting-data-to-excel – David

答えて

0

いいえ、デイヴィッドのアドバイスがうまくいきます。このリンク:

http://www.kubilayerdogan.net/javascript-export-html-table-to-excel-with-custom-file-name/

は、HTMLテーブルを取得し、Excelスプレッドシートにエクスポートします。私は、HTMLテーブルの代わりに生の文字列を使用していたが、関連する部分は、どちらも同じ働き:

var a = document.createElement("A"); 
var data_type = 'data:application/vnd.ms-excel'; 
a.href = data_type + "," + excel; 
a.download = "student_data.xlsx"; 
a.click(); 

これは、自動的にの.xlsxファイルとして文字列をダウンロードします。

Excelでファイルが破損していて開いていないと思っていましたが、.xlsxの代わりに.csvファイルを使用すると、.xlsx形式で他の問題が発生しました。

関連する問題