freks blog

about

Webサイトでファイルをダウンロードする

created: 2022-12-01
おすすめ記事: 出会ってよかったプログラマー本

Web サイトで CSV ファイルをダウンロードする方法調べました

downloads.download() - Mozilla | MDN を使うとよさそうですが
2022-12-01 時点で、Safari が対応してないので使うの厳しいです

a タグを使って

<a download="test.csv">sample</a>

をクリックすると test.csv がダウンロードされる方法を取るのがよさそうです

サンプルのコードを書いてみると

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8" />
    <title>Download CSV</title>
  </head>
  <body>
    <script type="text/javascript">
      function download() {
        // csvをbom付きにしておくとExcelで開いて文字化けしない
        // https://qiita.com/megadreams14/items/b4521308d5be65f0c544
        const bom = new Uint8Array([0xef, 0xbb, 0xbf])
        const content = 'id,名前\n1,テスト'
        const blob = new Blob([bom, content], { type: 'text/csv' })

        const url = window.URL.createObjectURL(blob)
        // aタグを作ってダウンロードしたあとに削除
        const a = document.createElement('a')
        a.style.display = 'none'
        a.href = url
        a.download = 'サンプル.csv'
        document.body.appendChild(a)
        a.click()
        window.URL.revokeObjectURL(url)
        a.remove()
      }
    </script>
    <button onClick="download();">CSVダウンロード</button>
  </body>
</html>

と、見えない a タグを作ってダウンロード後に削除してやるとよさそうです


Amazonのアソシエイトとして、blog.freks.jp は適格販売により収入を得ています。
This site is managed by freks