Skip to main content

CSVtoTable

CSVtoTable converts CSV files into interactive HTML tables.

  • Single native binary with embedded frontend assets
  • Standalone HTML output that works offline
  • Local files, URLs, standard input, and multi-file input
  • Mobile-responsive table layout
  • Search, sorting, pagination, and virtual scrolling
  • Copy, CSV, JSON, and print exports
  • User-controlled light and dark themes

CSVtoTable demo

Usage

# Write a standalone page
csvtotable sample/meteorite-landings-1.csv meteorites.html

# Combine files with the same columns
csvtotable sample/meteorite-landings-1.csv sample/meteorite-landings-2.csv meteorites.html

# Fetch CSV directly from a URL
csvtotable https://raw.githubusercontent.com/vividvilla/csvtotable/master/sample/meteorite-landings-1.csv meteorites.html

# Open a temporary page in the default browser
csvtotable data.csv --serve

# Add a title and generate headers for headerless data
csvtotable data.csv data.html --title "Sales" --no-header

# Read stdin and write stdout
curl -L https://example.com/data.csv | csvtotable - - > data.html

Inputs may be local files, http:// or https:// URLs, or - for standard input. When combining inputs, their headers and row widths must match. With --no-header, generated column names are used and row widths must still match. The final positional argument is the output file unless --serve is used.

BOM-marked UTF-8 and UTF-16 input is detected automatically. Use --encoding for other encodings, and --delimiter or --quotechar for custom CSV formats.

Run csvtotable --help for all options or csvtotable --version for the version. For compatibility with version 2, --pagination and --export disable those features.

Install

uvx, pipx, or pip

Run without installing:

uvx csvtotable data.csv data.html

Or install it:

pipx install csvtotable
pip install csvtotable # or inside a virtual environment:
uv tool install csvtotable

npx or npm

npx @vividvilla/csvtotable data.csv data.html
npm install --global @vividvilla/csvtotable # or install globally:

To run a particular published version:

uvx csvtotable@X.Y.Z data.csv data.html
npx @vividvilla/csvtotable@X.Y.Z data.csv data.html

Homebrew

brew install vividvilla/tap/csvtotable

Standalone binary

Download an archive from GitHub Releases, verify it with SHA256SUMS, and place csvtotable (csvtotable.exe on Windows) on your PATH.

Prebuilt binaries support Linux x86-64/ARM64, macOS 12+ x86-64/Apple Silicon, and Windows 10+ x86-64.

Development

Building requires Go 1.24+ and Bun. Distribution packaging also requires Python and npm. table/dist is generated before the Go build and embedded in the final binary.

nix develop  # optional development environment
make build   # frontend and build/csvtotable
make test    # frontend, formatting, vet, and tests
make dist    # binary and host-platform packages under dist/
./build/csvtotable sample/meteorite-landings-1.csv sample/meteorite-landings-2.csv /tmp/meteorites.html

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

csvtotable-3.0.0-py3-none-win_amd64.whl (3.9 MB view details)

Uploaded Python 3Windows x86-64

csvtotable-3.0.0-py3-none-musllinux_1_2_x86_64.whl (3.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

csvtotable-3.0.0-py3-none-musllinux_1_2_aarch64.whl (3.5 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

csvtotable-3.0.0-py3-none-manylinux_2_17_x86_64.whl (3.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

csvtotable-3.0.0-py3-none-manylinux_2_17_aarch64.whl (3.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

csvtotable-3.0.0-py3-none-macosx_12_0_x86_64.whl (3.9 MB view details)

Uploaded Python 3macOS 12.0+ x86-64

csvtotable-3.0.0-py3-none-macosx_12_0_arm64.whl (3.6 MB view details)

Uploaded Python 3macOS 12.0+ ARM64

File details

Details for the file csvtotable-3.0.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: csvtotable-3.0.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.9 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for csvtotable-3.0.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2372a8fe1568b87ac5e961d48122993426bb0703e1cee30de82dc5e656721d38
MD5 3724f34e7ad15025f67dff71ef241fe8
BLAKE2b-256 39f2bb1793a1244b1d68b4b6f6be9d8421ad14b00a5d02a0391907ccab4307b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0-py3-none-win_amd64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file csvtotable-3.0.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c73b81b24661c366a4117eb94027143e57a88846832c4a0aaafe3e2e143f5f17
MD5 81acb311b5bf128a113c8fa7d137f8ee
BLAKE2b-256 8c762e2b8765cfeadc6c7f113fb4bfe9ff6dd2f409e4019d2b47f5577bed3544

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0-py3-none-musllinux_1_2_x86_64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file csvtotable-3.0.0-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c2a634f383e37e68d55f78a7c2d1f6c8aaddc79a777dc6639192665c2b123800
MD5 f27ef3fb5b78d8426de1f4dc327cd8ac
BLAKE2b-256 b0ee01e3650c6011702977d79be067b1448aee6143c9a3f8dbd6103fbba40d64

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0-py3-none-musllinux_1_2_aarch64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file csvtotable-3.0.0-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 cf07dfe3bec0fc5b5703bc469f52327ac0f7a1b55807fdc848dc6291960a992b
MD5 79f3d59f8e5539f040b6605271ea6b90
BLAKE2b-256 d613703bbf126fe006be7687cbc709fbea36add9e54f04ff45b19d7d96012be3

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0-py3-none-manylinux_2_17_x86_64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file csvtotable-3.0.0-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 75b744c5a58ed3af1974bd58e25e47b1b29f4394aba4a3557a249087dec0a729
MD5 4351df620bd6fa8e0f8ab2d39a4b4d0a
BLAKE2b-256 deec2bd22bb8cfc1da2b632166409c36a7fe329deb8d26ab8bcf74f323222dc8

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0-py3-none-manylinux_2_17_aarch64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file csvtotable-3.0.0-py3-none-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0-py3-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 209713ca4abd5745fd0485358c3db7962ea3cd0dfef5a8953aa875aaf6f1aabb
MD5 bf7c645429d6ba4bb12cab5f36812736
BLAKE2b-256 465d50bf567a6ff5c9b57507bf8fc18b3bae499cc767cb1ff214045fe7c844a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0-py3-none-macosx_12_0_x86_64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file csvtotable-3.0.0-py3-none-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0-py3-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 0b44cc96e60eaeb21e7046f4298c699c3ef7e726e9a09a1614b3c9cb3cd75fba
MD5 8027ef32eafb4884b8a0bd229324837a
BLAKE2b-256 50cfbe5a5730efbf1de49b6b82d0ea04770004b6be2ac827bcdfb12b2114a7ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0-py3-none-macosx_12_0_arm64.whl:

Publisher: release.yml on vividvilla/csvtotable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

3.2.0

7 files

3.1.0

7 files

This release

3.0.0 This release

7 files

2.1.1

2 files

2.1.0

2 files

2.0.0

2 files

1.1.4

1 file

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page