Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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.0b5-py3-none-win_amd64.whl (3.9 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 12.0+ x86-64

csvtotable-3.0.0b5-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.0b5-py3-none-win_amd64.whl.

File metadata

  • Download URL: csvtotable-3.0.0b5-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.0b5-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4f6bc86b3c65745ecd40890053145975431c9b0e4a103cf535c02690a6fe09ce
MD5 8ec11c5254c796849fb3ee85dd9dc1ed
BLAKE2b-256 a8106ef505e70f84e769bc6e8545c7f517d22a4d0857c7970b01acc113a2bd10

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b5-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.0b5-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b5-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5b4205b3de682eed75c477715140f5b93de75f5fe0434fa7b2b87e293315eb56
MD5 fb3a5930284aa4ed7520e1d7ca0341aa
BLAKE2b-256 71576c77a845ca03ca38623d958b487046c539bb7fec1c8c7257a45a769a90ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b5-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.0b5-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b5-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6d853b1b5ab244494bc55e4a3dd56bdf7c80e073cb19e31e329fc688f280fe36
MD5 393fc7c44c2d32411f0e0e7c6b3dd5e1
BLAKE2b-256 802c29e1b8723af8f91da3381a73ddff9c8d3df881e5dc32d0f2cbf50be2ba22

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b5-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.0b5-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b5-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 944067ecb3ec5272b2b8b1508adfca01c59ffb552495f9081a41a5292d5fc371
MD5 c8635c2190949a35477d5a698c6a8e89
BLAKE2b-256 187e8055caee46cebda877a38a892f322cba2dab24e0f3d8ab4486d704cb3fad

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b5-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.0b5-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b5-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 15514ae3db7cbef57f4ab3d85682f57113b1b9206047db68c609f5e3ed1faf25
MD5 7bee9391abc91fb42cc5aa99ddad338d
BLAKE2b-256 f7bc0f0296bc4a38a2f64a08599f65d2ab46bc050d3f2220db3d4b60f5b274e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b5-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.0b5-py3-none-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b5-py3-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 dda2dd0bcd0be46a590c9ed997c12b4ae156fe6374c0e3eab035b65e1533e7d0
MD5 3aa988ce8ee3800c7fac5b1402938208
BLAKE2b-256 97e1088b032be77560959ff785654c1d2037c072b2f9c5af28fdb6f9e56965bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b5-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.0b5-py3-none-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for csvtotable-3.0.0b5-py3-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 8cfebc5dedcf15267756c6756addfd1e26b5db7993af8a85ba8af78cd369b1bd
MD5 2ddd604dadb6d19258064c988b134754
BLAKE2b-256 d6152b2cb1728fcb8c2dd0ccd03a1dc8a884cbdb8d4e43549fa51f1fab0b402e

See more details on using hashes here.

Provenance

The following attestation bundles were made for csvtotable-3.0.0b5-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

3.0.0

7 files

This release

3.0.0b5 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