JavaScript自体がローカルファイルを操作する権限を持っていないので、ActiveXを使わない限り、面倒だし安全ではないので全く使いたくないので、上のテーブルからデータを取得する方法です。ページを編集してローカル ファイルに保存することはできません。
エクスポートしたいのはテーブル内のデータであり、テーブル内のデータはサーバーから取得されるため、サーバー上のデータをローカルにダウンロードしてファイルとして保存するだけです。
サーバー側の実装コード:
ServletOutputStream out = null;
try {
//出力CSVのヘッダー情報を設定します
response.setContentType("text/csv");
String disposition = "attachment; fileName=data.csv";
response.setHeader ("Content-Disposition ", disposition);
//出力オブジェクトを取得します
out = response.getOutputStream();
//データを取得します
byte[] blobData = CSVParser.parseCsv( rs).getBytes();
out.write(blobData);
out.flush();
out.close();
}catch(Exception e){
throw e ;
}finally{
if(out != null)
out.close();
}
CSVParser の説明が必要なコードがあります。 parseCsv(rs). CSVParser は、データベースから取得した ResultSet オブジェクトを CSV データに変換するクラスです。返されるのは、CSV 形式の文字列データです。 >
iframe を使用してクライアントをダウンロードしました。より一般的なメソッドを書きました。この関数を js ファイルに入れて、使用時にページ上で直接呼び出すことができます。
// URL を入力しますクエリデータに応じて Return csv
function bsuExportCsv(url){
//ページにダウンロード用の iframe がない場合は、ページに iframe を追加します
if($('#downloadcsv'). length<=0)
$('body').append("");
$('# downloadcsv').attr(' src',url);
}
url はデータを要求するサーブレットのアドレスです。このアドレスはデータを csv 形式で返す必要があります
。
まず、ページ内に ID downloadcsv を持つ iframe があるかどうかを確認します。body タグに iframe がない場合は、iframe の src 属性を受信 URL アドレスに設定します。
これを使用する場合は、エクスポートしたいページで bsuExportCsv("http://localhost:8080/csvservelt") を呼び出すだけです。