📝 Format & Conversion · 7 min read
Convert CSV to Word Without Broken Tables
Word has no CSV import button, and that is the whole problem. Every route from a spreadsheet into Word runs through either a table or a merge, so the job is not “convert the file” but “get the rows into a structure Word understands”. For a small file, paste the text and use Insert > Table > Convert Text to Table with the comma as the separator. For a large one, or when each row should become its own document, use the CSV as a mail merge data source. The methods below cover the four cases people actually hit, including the one where the table is too wide for the page.
The complaint that brings most people here is not about a missing feature, it is about damage done on the way: “converting a CSV file to Word can seem difficult, many users face problems with broken tables, misplaced content, or formatting changes”. All three of those have the same root cause, and it is worth naming before the fix.
Why a pasted CSV breaks in Word
A CSV is not a grid of values. RFC 4180 lets any field sit inside double quotes, and a quoted field may contain the delimiter, a double quote, or a line break. So the line 1,"Smith, John",Berlin has three fields, not four, and the comma inside the quotes is data.
Convert Text to Table splits on the separator character and nothing else. It has no idea what a quote means, so the example above becomes four cells and every value after it in that row shifts by one. Nothing warns you. The table looks plausible, the columns are simply wrong, and the error travels into whatever report the document becomes.
There is a second failure that has nothing to do with commas. A page is about 6.5 inches wide once margins are set on US Letter portrait, and 9.5 inches on A4 portrait. A CSV with 15 columns does not fit either, so Word squeezes the cells, wraps one word per line, or pushes the table off the right edge where it is silently clipped when printed.
Method 1: Convert Text to Table (small files, one output)
This is the fastest route when the table is for reading rather than for a mail merge.
- Open the CSV in a plain text editor such as Notepad or VS Code, and copy everything.
- Paste into Word. Expect plain comma-separated lines at this stage, not a table.
- Select the pasted text, then Insert > Table > Convert Text to Table.
- Choose Commas as the separator under “Separate text at”. Word fills in the number of columns from the text, so if the count looks wrong, a quoted comma is the reason.
- Set the table to AutoFit > AutoFit Window, then switch the page to landscape if there are more than about six columns.
The same dialog accepts tabs, paragraph marks and a custom character, so a TSV or a pipe-delimited export works in exactly the same way, just with a different separator chosen. Word has no upper limit on table columns that you will hit in practice, unlike Excel's 16,384, but it has no useful way to handle a cell containing a line break either, so long notes fields tend to look wrong however you convert them.
Method 2: Mail merge (one row, one document)
When the output is not one big table but one document per row, mail merge is the right tool and it has been the right tool for decades. Word reads the CSV as a data source, so the quoting rules are parsed properly instead of being split on commas.
- Create the template document with the fixed text, and leave gaps where values go.
- Go to Mailings > Select Recipients > Use an Existing List and pick the .csv file. Word treats the first row as the header row and uses it for the field names.
- Insert merge fields such as
«CustomerName»into the gaps. - Finish & Merge > Edit Individual Documents for a review pass, or Print directly for a run that is already known good.
One encoding note saves a wasted afternoon. Word detects UTF-8 in a CSV far more reliably when the file begins with a byte order mark, so if accented names arrive as mojibake, save the CSV as UTF-8 with BOM and reattach it as the data source. In Python that is encoding="utf-8-sig", and there is more on the underlying cause in fixing garbled CSV in Excel.
Method 3: LibreOffice, or an online converter
LibreOffice handles this offline and at no cost. Open the CSV in Calc, where you get the same import dialog options as Excel, select the range, copy it, then paste into Writer with Paste Special > Formatted Text (RTF) so the cells arrive as a table rather than as tab-separated text.
Online converters are quicker but hand your file to a third party. For a published dataset that is fine. For a payroll export or a customer list it is not, and the destination “free CSV to Word” tools generally keep the upload for a period after the conversion completes. If the data is confidential, keep it local.
Method 4: A script, when the report is a monthly event
If the same document has to be rebuilt every month from a fresh export, doing it by hand is the expensive option. A .docx file is a ZIP archive of XML parts, standardised as Office Open XML (ISO/IEC 29500), so a script can produce one without Word installed:
from docx import Document
import csv
doc = Document()
doc.add_heading("Q3 Orders by Region", level=1)
with open("orders.csv", newline="", encoding="utf-8") as f:
rows = list(csv.reader(f))
table = doc.add_table(rows=0, cols=len(rows[0]))
table.style = "Table Grid"
for row in rows:
cells = table.add_row().cells
for i, value in enumerate(row):
cells[i].text = value
doc.save("orders-q3.docx")The library writes real Word tables, so the header row, the borders and the cell text are all editable by whoever receives the file. The script also gives you something Word cannot: a table whose column widths are computed from the data instead of guessed, which matters when the same report runs every month with different lengths of text.
Which method fits
| If you need… | Use | Repeatable? | Keeps quoted commas? |
|---|---|---|---|
| One table to read or annotate | Paste + Convert Text to Table | No, manual each time | No |
| One document per row | Mail merge from the CSV | Yes, reuse the template | Yes |
| An offline conversion, no install | LibreOffice Calc to Writer | No, manual each time | Yes, through Calc |
| A formatted report every month | python-docx script | Yes | Yes |
| A file nobody has to edit | Convert the CSV to PDF | Yes | Yes |
Making a wide table readable on a page
Column count, not row count, is what makes a Word table look wrong. Four settings recover most of the space: landscape orientation, narrow margins around half an inch, a body font of 9 to 10 points for the table only, and AutoFit Window rather than Fixed Column Width. On A4 landscape with half-inch margins that gives roughly 10.7 inches of usable width, and on US Letter landscape about 10 inches.
If the data still does not fit, the column list is too long for a page and no formatting trick fixes it. Two honest options remain: split the CSV into two reports by column, or move the output to PDF or a web page where the reader can scroll sideways. A table that scrolls is more useful than a table clipped at the right margin, and turning the CSV into an HTML table is a five-minute version of that if the document is going to be read on screen anyway.
Keeping the values intact on the way
Word has no data types, so it shows whatever the CSV contains, which is both a blessing and the reason conversions get blamed for problems that happened earlier. Two cases are worth checking before the file ever reaches Word.
The first is leading zeros. A ZIP code, a part number or an employee ID stored as 00123 is a number to Excel, so opening the CSV in Excel to clean it up before converting is how the zero disappears. Read the column as text instead, or remove the Excel step, and see keeping leading zeros in CSV for the options per tool.
The second is row count. A silent loss of rows is the failure that does the most damage, because the document still looks complete. Compare the row count of the CSV against the rows in the table before sending anything out, using the same row counting methods you would use to check a file you did not build, and remember that a CSV record can legally span more than one line when a field contains a line break.
Frequently asked questions
Can I open a CSV file directly in Word?
Word will open it, but as plain text with commas visible rather than as a table. To get columns, paste the content and use Convert Text to Table, or attach the CSV as a mail merge data source so it is read as records.
How do I convert a CSV to a Word table?
Copy the CSV, paste into Word, select the pasted text, then Insert > Table > Convert Text to Table and pick Commas as the separator. Word fills in the column count itself. For more than a few hundred rows, expect the document to get slow and consider PDF instead.
How do I make one Word document per row of a CSV?
Mail merge: Mailings > Select Recipients > Use an Existing List, choose the CSV, insert the merge fields, then Finish & Merge. This is what invoices, letters and certificates use, because one row becomes one finished document.
Why did my CSV break into extra columns when I pasted it?
A quoted field contained a comma, which RFC 4180 allows. Convert Text to Table splits on every comma it can see, so clean the file first or use a converter that parses quotes properly.
Is there a free CSV to Word converter?
Yes, and LibreOffice does it without uploading anything: open the CSV in Calc, copy the range, paste into Writer with Formatted Text. Browser converters work too, but the file leaves your machine.
How many rows can a Word table hold?
Word does not publish a fixed limit, unlike Excel's 1,048,576 rows per sheet. The real ceiling is editing speed and file size; tens of thousands of table rows make a document sluggish, which is why mail merge or a script handles large sets better.
Should I send the table as Word or as PDF?
Word if the reader has to edit it, PDF if the reader only has to read or print it. A PDF keeps the column widths and page breaks exactly as you set them, which a .docx will not do on someone else's machine. For export-bound documents, a Markdown or plain table is often the format that survives being pasted anywhere.
Tools mentioned in this guide
Turning a CSV into a document is free. These three matter when the document has to be rebuilt on a schedule:
- OpenCode Go — the python-docx snippet above is short, but a monthly report with conditional sections, headers and per-customer tables is a coding job; a $10-a-month subscription covers 19+ models for writing and fixing it. Try OpenCode Go
- Stack AI — if the report is generated for the same people on the same day each month, a workflow can pick up the CSV, build the document and send it, so nobody has to remember the mail merge steps. Try Stack AI
- Softr — when readers keep asking for a slightly different cut of the same data, a small searchable app answers that without another document being produced. Try Softr
Some links above are affiliate links — if you buy through them we may earn a commission at no extra cost to you. Links currently point to each vendor's official page until our dedicated tracking links are registered. OpenCode Go uses our referral link.
Read the Data Before You Format It
Upload the CSV and ask what changed, which rows are odd, or what the totals are. The answer comes back before anyone opens Word.
Related reading
Format Conversion — other guides that pair well with this one.
- Convert CSV to PDF
- Convert CSV to Excel Without Excel
- Remove Duplicates from CSV
- Remove Blank Rows from CSV
Browse all guides in the NoCodeCSV blog.