Free Word table extractor — JSZip + OOXML — no upload

Extract Word to CSV
Tables from .docx,
no Word needed.

Free Word to CSV converter. Upload any .docx file — all tables detected automatically with row and column counts. Handles merged cells (colspan). Excludes deleted tracked-change text. Download the CSV or copy to clipboard. Runs entirely in your browser.

Your file never leaves your browser
All tables auto-detected
Merged cells handled
Copy to clipboard
Always free
Word to CSV Converter  JSZip + OOXML
Uses JSZip to unzip the .docx and DOMParser to read the OOXML. Your file is never uploaded.
Drop your Word .docx file here
.docx or .docm — all tables detected automatically
 Table exported

      
How Word to CSV extraction works

JSZip + DOMParser — the same approach used for the CSV to Word tool, in reverse.

1
JSZip unzips the .docx

A .docx file is a ZIP archive. JSZip loads the file as an ArrayBuffer and extracts word/document.xml — the main document body containing all tables, paragraphs and headings. The entire operation happens in memory without writing to disk.

2
DOMParser reads the OOXML

The XML is parsed with the browser's native DOMParser using the OOXML namespace. All <w:tbl> table elements are found, and each <w:tr> row and <w:tc> cell is read. gridSpan attributes handle merged columns. Deleted text (<w:del>) is excluded.

3
Select table and export CSV

All tables are listed with their dimensions. Select the table, choose your delimiter, and click Export. The cells are serialised as RFC 4180 CSV with UTF-8 BOM encoding — ready to open in Excel, Google Sheets or any data tool.

Word to CSV in Python
Python — python-docx
from docx import Document import csv doc = Document('file.docx') # Export first table: table = doc.tables[0] with open('output.csv', 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) for row in table.rows: writer.writerow([cell.text.strip() for cell in row.cells]) # Export all tables: for i, table in enumerate(doc.tables): with open(f'table_{i+1}.csv', 'w', newline='') as f: csv.writer(f).writerows( [cell.text.strip() for cell in row.cells] for row in table.rows )
Requires: pip install python-docx. cell.text includes all text from all paragraphs and runs in the cell, separated by newlines. Use .strip() to remove extra whitespace.
When do you need Word to CSV?
Reports with embedded data tables

Word documents often contain data tables — financial reports, research findings, comparison matrices — that need to be extracted to a spreadsheet for further analysis. CSVShift extracts any table without requiring Word to be installed.

Forms and questionnaires

Questionnaires and structured forms in Word format use tables as layout elements. Extracting the answer cells as CSV enables batch processing of multiple form responses without manual copy-paste.

Document migration

Moving content from Word-based systems to modern databases or CMS platforms requires extracting structured data. Tables in Word documents are the most common structured data format that needs migration to CSV for database import.

Data analysis without Word

Linux and Mac users without Microsoft Word can extract table data from .docx files using CSVShift without installing LibreOffice. The browser does all the work — upload the .docx and download the CSV.

Related CSV tools
Popular searches
word to csv word table to csv convert word to csv extract table from word to csv word to csv online docx to csv converter word to csv free word table to csv online word to csv python extract word table to excel docx table to csv how to export word table to csv

Word tables read
in your browser. No Word.

CSVShift uses JSZip to unzip the .docx archive and the browser's native DOMParser to parse the Office Open XML. Your file is never uploaded. The OOXML namespace (http://schemas.openxmlformats.org/wordprocessingml/2006/main) is used throughout — the correct way to handle Word XML — not brittle regex or string matching.

OOXML namespace parsing
getElementsByTagNameNS with the correct W3C namespace — not fragile regex or attribute matching.
Merged cell handling
gridSpan (colspan) attributes read and expanded correctly — merged cells don't shift adjacent columns.
Tracked changes aware
Text inside w:del elements (deleted tracked changes) is excluded from the CSV output.
Free, no conditions
No file size limit, no watermark, no account. Funded by display advertising only.
Frequently asked questions
How do I extract a table from a Word document to CSV?
Upload your .docx file — all tables are detected automatically with row and column counts. Select the table you want, choose your delimiter, and click Export. Download the CSV or copy to clipboard. No Word installation required.
How do I convert a Word table to CSV in Python?
from docx import Document; import csv; doc = Document('f.docx'); csv.writer(open('out.csv','w')).writerows([[c.text for c in r.cells] for r in doc.tables[0].rows]). Requires pip install python-docx. For all tables: iterate doc.tables.
What happens to merged cells in the Word table?
Horizontally merged cells (gridSpan) are expanded — the first cell gets the text value, adjacent merged cells become empty columns to maintain alignment. Vertically merged cells (vMerge) — the top cell gets the value, continuation cells below are empty.
Is my Word document safe when converting online?
Yes. CSVShift processes the .docx entirely in your browser using JSZip and DOMParser. Your file is never uploaded to any server. Open the Network inspector — zero outbound requests carry your document data.