← Docs from Excel

Why mail merge changes your numbers and dates

The spreadsheet says £1,250.00 and the letter says 1250. Or 1250.00000000001. The invoice date reads 14/03/2026 in Excel and 3/14/2026 in Word — or worse, 46095. Nothing is broken; Word is doing exactly what it was designed to do.

Short answer: Word receives the cell's underlying value, never its formatting. Fix it in one of three places: add a formatting switch to the merge field, switch the connection method to DDE, or put the finished text in its own Excel column. Full instructions below — or use a tool that takes the displayed text to begin with, which is what Docs from Excel does.

What is actually happening

In Excel, a cell holds a value and wears a format. 1250 wearing #,##0.00 looks like 1,250.00. A date is not text at all — it is the number of days since 1900, wearing a date format. 14 March 2026 is really the number 46095.

When Word connects to a workbook it uses a database driver, and a database driver asks for values. The format stays behind in Excel. So Word gets 1250 and 46095, and prints whatever it decides those mean.

That single fact explains all of the symptoms people report:

What you seeWhy
1250 instead of 1,250.00The thousands separator and the two decimals were formatting, not value.
1250.00000000001Floating-point representation, normally hidden by the cell format.
0.075 instead of 7.5%A percentage is stored as a fraction; the % sign is formatting.
Date order flips to 3/14/2026Word re-formats the date number using its own locale, not Excel's.
A bare number like 46095The date arrived as its serial number and nothing re-formatted it.

Fix 1: A switch on the merge field

This is the answer Microsoft intends. Each merge field can carry a formatting instruction, and it is applied at merge time.

In the document, press Alt+F9 to show field codes. You will see { MERGEFIELD Amount } instead of «Amount». Edit it to include a switch, then press Alt+F9 again and F9 to refresh:

Numbers   { MERGEFIELD Amount \# "#,##0.00" }      → 1,250.00
Currency  { MERGEFIELD Amount \# "£#,##0.00" }     → £1,250.00
Whole     { MERGEFIELD Qty \# "0" }                → 480
Dates     { MERGEFIELD DueDate \@ "dd MMMM yyyy" } → 14 March 2026
Dates     { MERGEFIELD DueDate \@ "dd/MM/yyyy" }   → 14/03/2026

Two traps. The braces must be real field braces — typing { from the keyboard does nothing, use Ctrl+F9 to insert a field. And in the date switch, capital MM is months while lowercase mm is minutes, which is how people end up with 14/00/2026.

Fix 2: Connect via DDE instead

Word has an older connection method that asks Excel itself for the data, so the formatting comes along. In Word: File → Options → Advanced → General, tick Confirm file format conversion on open. Then attach the data source again and choose MS Excel Worksheets via DDE when prompted.

It works, and it fixes every field at once rather than one switch at a time. The costs: Excel must be installed and it opens the workbook to serve the data, it is fragile on newer builds, and it does not survive being moved to another machine well.

Fix 3: Do the formatting in Excel, in a text column

The least clever and most reliable option. Add a column that produces the finished string, and merge that column instead of the raw one:

=TEXT(B2, "#,##0.00")          → 1,250.00
="£" & TEXT(B2, "#,##0.00")    → £1,250.00
=TEXT(C2, "dd mmmm yyyy")      → 14 March 2026
=TEXT(D2, "0.0%")              → 7.5%

Now the cell genuinely contains text, so no driver, locale or switch can reinterpret it. You can also see every value exactly as it will print before you merge anything — which is worth more than it sounds when the numbers are invoice totals.

Fix 4: Use the displayed text in the first place

Docs from Excel reads your spreadsheet the way you see it. A cell showing 1,250.00 arrives as 1,250.00; a cell showing 14/03/2026 arrives as 14/03/2026; 7.5% stays 7.5%. No switches, no helper columns, no DDE.

Then every row becomes its own Word file or PDF, named from a column you choose. You can open every generated file at full size before paying, so the numbers get checked on real output rather than on a preview of record one.

Check your own numbers

Upload your spreadsheet, say what the documents are, then open the finished files and look at the amounts. Nothing to install.

Send your Excel →

Free to run and inspect. Downloading a batch is a one-time US$9.90 — no subscription, no account.