概要
- CSVファイル をHTMLテーブルとして美しく表示するJavaScriptツールの使い方を解説
- 導入手順 ・カスタムフォーマット・デプロイ方法を簡潔に整理
- Deno/deno-csv によるAPI連携例も紹介
- トラブルシューティング や依存ライブラリの確認方法を明記
- GitHub Pages やiframeでの埋め込み方法も説明
CSVファイルをHTMLテーブルとして表示する方法
基本手順
-
リポジトリのクローン
git clone git@github.com:derekeder/csv-to-html-table.git cd csv-to-html-tableクローン・移動すること
-
CSVファイルの配置 data/ フォルダに表示したいCSVファイルを追加すること
-
index.htmlの設定変更 CsvToHtmlTable.init() 関数のオプションを編集すること
<script> CsvToHtmlTable.init({ csv_path: 'data/Health Clinics in Chicago.csv', element: 'table-container', allow_download: true, csv_options: {separator: ',', delimiter: '"'}, datatables_options: {"paging": false} }); </script>設定値を確認・変更すること
オプション一覧
-
csv_path CSVファイルへのパスを指定すること
-
element テーブルを描画するHTML要素ID(デフォルト: table-container)を指定すること
-
allow_download trueでダウンロードリンクを表示すること(デフォルト: false)
-
csv_options jQuery CSVの設定(区切り文字やデリミタ)を指定すること
-
datatables_options DataTablesの設定を指定すること
-
custom_formatting 特定カラムにカスタムフォーマット関数を適用すること
カスタムフォーマット例
- ハイパーリンクとして表示したい場合
例:4列目をリンク化
XSS対策としてHTMLエスケープを徹底すること<script> function format_link(link){ if (link) return "<a href='" + link + "' target='_blank'>" + link + "</a>"; else return ""; } CsvToHtmlTable.init({ csv_path: 'data/Health Clinics in Chicago.csv', element: 'table-container', allow_download: true, csv_options: {separator: ',', delimiter: '"'}, datatables_options: {"paging": false}, custom_formatting: [[4, format_link]] }); </script>
ローカルでの実行
- Python2の場合
python -m SimpleHTTPServer - Python3の場合
ブラウザで http://localhost:8000/ へアクセスすることpython -m http.server
デプロイ方法
-
GitHub Pages利用 masterブランチをgh-pagesへpushし、
git push origin master:gh-pageshttp://your-github-username.github.io/csv-to-html-table/ へアクセスすること
-
一般的なWebサーバ プロジェクト一式(css, data, fonts, js含む)をサーバへアップロードすること
iframeによる埋め込み
- HTMLに以下を追加
他サイトやダッシュボードへの組み込みを実現すること<iframe style="border-style: none;" src="http://derekeder.github.io/csv-to-html-table/" height="950" width="600"></iframe>
依存ライブラリ
- Bootstrap 4 :レスポンシブ対応
- jQuery :高速・多機能なJavaScriptライブラリ
- jQuery CSV :CSVパース用
- DataTables :高機能テーブル表示
トラブルシューティング
- データが表示されない場合
- ChromeデベロッパーツールやFirebugでJavaScriptエラーを確認すること
- Mac: Option+Command+J
- Windows: Control+Shift+J
- エラー行を特定し、修正すること
- ChromeデベロッパーツールやFirebugでJavaScriptエラーを確認すること
バグ報告・貢献
-
バグ報告 https://github.com/derekeder/csv-to-html-table/issues で報告すること
-
コントリビューター Derek Eder(主な貢献者)、その他複数名
ライセンス
- MITライセンス 商用・個人利用が自由なことを確認すること
Deno/deno-csvとAnsible連携によるAPI活用例
- Deno/deno-csv でCSV更新APIを作成し、Ansible URIモジュールでCSVファイルを更新すること
- /view でCSVテーブル表示、 /update でCSV更新機能を提供すること
- 静的サイト機能 を追加し、CSV-to-html-tableで即座に可視化・ダウンロード可能にすること
- APIとダッシュボードの組み合わせ で運用自動化・可視化を効率化すること
- sysadminによる実践的な統合例 として参考にすること
この手法により、 CSV管理・可視化 ・ 自動化連携 を手軽に実現できる提案。