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
  • Mobile-responsive table layout
  • Search, sorting, pagination, and virtual scrolling
  • Copy, CSV, JSON, and print exports
  • User-controlled light and dark themes

Install

uvx, pipx, or pip

Run without installing:

uvx csvtotable data.csv data.html

Or install it:

pipx install csvtotable
# or, inside a virtual environment:
pip install csvtotable

uv tool install csvtotable works too. Python is only needed to install the prebuilt executable.

npx or npm

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

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.

Usage

# Write a standalone page
csvtotable data.csv data.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

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.

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/goog.csv /tmp/goog.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.0b3-py3-none-win_amd64.whl (2.1 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 12.0+ x86-64

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

Uploaded Python 3macOS 12.0+ ARM64

File details

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

File metadata

  • Download URL: csvtotable-3.0.0b3-py3-none-win_amd64.whl
  • Upload date:
  • Size: 2.1 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.0b3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8cd3963762b76ff2c173331b84247df34e1237d5ecb46f029d423d9ea3992dcb
MD5 b49ac8402e4447b61d67d75332603513
BLAKE2b-256 406ed09262fe236f099951c689a7a0ed7255fa6e91e56fc324ecf672a06da7c2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for csvtotable-3.0.0b3-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4fe750552302f7c95015d3aea19a482dbacaf5bc86b5c059b060e7b77305bcff
MD5 a0e22c912416d0800efad0ab1e0e7a73
BLAKE2b-256 6d6c83a02b44063ceb80e15ca88872de9bdd45bb3e3c5bc20cd7b60fa73fa437

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for csvtotable-3.0.0b3-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bc37a6ee8bba042f8b99d15cd940c0544cf0afe6aa8e850372e586c695d1110a
MD5 835fb88df03cf0670f65ed52b1364737
BLAKE2b-256 8717d27d7e9a54ed05d4c04904a3f64c10f755cc7b9ef7c37d384919515615ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for csvtotable-3.0.0b3-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 39f31d90d9d6b6f81929edfffe22adb09e5f488cc2efddd8fa9eef6cd285a220
MD5 fa02f826a954a4de323903c67714fc20
BLAKE2b-256 e675be762692ac84a5001d07d06471df9114a3a0d23c25363b3dd9c9e92f24f7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for csvtotable-3.0.0b3-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 081423b32b0a5436f00748083e0600b0d1d74221eb31a7e84ee8eb46beb4f247
MD5 1be42a9763a637ae9970acfbe455260a
BLAKE2b-256 84600e15bb42725d0dd72cd12bd74b881b2624f60bb95516fca9d46122d2d30e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for csvtotable-3.0.0b3-py3-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 172042901800f9dfabe7b5007e40f0227af997edb7526eb91c86ac1f53f640d2
MD5 ea154995cb5c59b4b79f9a3b61b89920
BLAKE2b-256 a6029533235cc9e7b889ab176778522434368714e4755bc61369627f4e568af3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for csvtotable-3.0.0b3-py3-none-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 8223e415d454ce93afa0571c5f8421fd05cd88c653757e5a1d48d42ec42efe82
MD5 e064886f04b4a7806712244c3e33acbc
BLAKE2b-256 9c28d5964b3d60e49048d103cc44c0b24ecfd0b30519da73cca976fd29e63e90

See more details on using hashes here.

Provenance

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