Skip to main content

Extracts tables from .docx files and saves them as csv or xlsx

Project description

docx2csv

Extracts tables from .docx files and saves them as CSV, TSV, XLSX, or JSON.

CI PyPI Python

Installation

pip install docx2csv

For XLS (Excel 97) output support:

pip install docx2csv[xls]

Quick Start

Command Line

# Extract all tables as separate CSV files
docx2csv extract document.docx

# Extract as XLSX
docx2csv extract document.docx --format xlsx

# Extract as single CSV file with all tables
docx2csv extract document.docx --format csv --singlefile

# Filter tables by minimum row count
docx2csv extract document.docx --sizefilter 3

# Specify output location
docx2csv extract document.docx --output results.csv

# Analyze a document (list tables without extracting)
docx2csv analyze document.docx

Python API

from docx2csv import extract_tables, extract, analyze

# Get table data as Python objects
tables = extract_tables('document.docx')
for table in tables:
    print(f"Table {table['id']}: {table['num_rows']} rows x {table['num_cols']} cols")
    for row in table['data']:
        print(row)

# Extract to file
extract('document.docx', format='xlsx', output='output.xlsx')

# Analyze document structure
info = analyze('document.docx')

Output Formats

Format Extension Description
CSV .csv Comma-separated values
TSV .tsv Tab-separated values
XLSX .xlsx Excel 2007+ (via openpyxl)
XLS .xls Excel 97 (requires pip install docx2csv[xls])
JSON .json Structured JSON with metadata

Requirements

Contributing

Contributions are welcome! Every little bit helps.

  1. Fork the repo on GitHub
  2. Clone your fork: git clone https://github.com/your-username/docx2csv.git
  3. Create a branch: git checkout -b name-of-your-bugfix-or-feature
  4. Make your changes and add tests
  5. Run tests: pytest
  6. Commit and push: git commit -m "Your message" && git push origin your-branch
  7. Submit a pull request

Credits

  • Ivan Begtin - Author and maintainer
  • Vsevolod Oparin - Optimized table extraction code

License

BSD 3-Clause License. See LICENSE for details.

Project details


Download files

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

Source Distribution

docx2csv-0.1.4.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

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

docx2csv-0.1.4-py2.py3-none-any.whl (8.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file docx2csv-0.1.4.tar.gz.

File metadata

  • Download URL: docx2csv-0.1.4.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for docx2csv-0.1.4.tar.gz
Algorithm Hash digest
SHA256 501fd0dd2041dc5dec1f1e27222d7230a41d253b9b1617d2bf5cf4c99f2583e6
MD5 84a5314813b90626b8982820fad7fd79
BLAKE2b-256 6617d39191ba2795bd444c08ed9fb6fb1194e3867081b06f9672ef660da8b1f9

See more details on using hashes here.

File details

Details for the file docx2csv-0.1.4-py2.py3-none-any.whl.

File metadata

  • Download URL: docx2csv-0.1.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for docx2csv-0.1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 241342b445e3d93202efe34b66fc54cc8a0242dd060e001fe2520a881f13acb6
MD5 3e608f6a08f90dd4f473ddf6263a88b2
BLAKE2b-256 44183504efd3d20899639760c806d6e2914d0a93e48c8141140a4b4379bf0a8f

See more details on using hashes here.

Supported by

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