この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
ページ更新者:T
更新日時:2026-05-15 03:52:15

タイトル: CSVファイルのダウンロード
SEOタイトル: PHP / Laravel で CSV ファイルをダウンロードする方法

この記事の要点
  • Java/Spring + Ajax でCSV ファイルをダウンロードする実装パターン
  • クライアント: $.ajax でリクエスト、Blob として受け取りてダウンロード
  • サーバ: Content-Type: text/csv + Content-Disposition: attachment; filename=...
  • Excel の文字化け対策にUTF-8 BOM 付与が定石(先頭に \uFEFF

 

本稿はAjaxを用いたCSVファイルのダウンロード方法を記載します。

尚、実装例のサーバーサイド言語はJavaのSpring Frameworkとします。(適宜読み替えて下さい。)

 

HTML

 

Javascript

$("#download").click(function() {
    $.ajax({
        method: 'post',
        url: 'csvDownload',

    }).done(function(data, status, jqXHR) {
        let downloadData = new Blob([data], {type: 'text/csv'});
        let filename = 'test.csv'

        let downloadUrl  = (window.URL || window.webkitURL).createObjectURL(downloadData);
        let link = document.createElement('a');
        link.href = downloadUrl;
        link.download = filename;
        link.click();
        (window.URL || window.webkitURL).revokeObjectURL(downloadUrl);

    });
}
);

 

Java

@RequestMapping("csvDownload")
public void csvDownload(HttpServletResponse response) {

    response.setContentType(MimeTypeUtils.APPLICATION_OCTET_STREAM_VALUE + ";charset=utf-8");
    response.setHeader("Content-Disposition", "attachment; filename=\"test.csv\"");

    try (PrintWriter printWriter = response.getWriter()) {

        String str = "a" + "," + "1" + "\r\n";

        printWriter.print(str);

    } catch (IOException e) {

        e.printStackTrace();

    }
}