WhatsApp has no Excel or CSV option. You export the chat as a text file, then split it into columns in Google Sheets or Excel. For Word, you just open the text file. All of this is free. Photos and voice notes stay out, because the text file only names them.
Step 1: Export the chat
Export without media, because you only need the text.
- iPhone: open the chat, tap the name at the top, tap Export chat, then Without media. You get a ZIP file, and the text is inside it as
_chat.txt. - Android: open the chat, tap the three dots, then More, Export chat and Without media.
Save it somewhere you can reach from your computer. Our guides show the full steps and how to open the file. If Export chat is missing, see export problems.
What the file looks like
WhatsApp doesn’t document its format, but parsers built for these files describe the usual patterns. On iPhone, a line usually looks like this:
[15/01/2026, 10:30:12] Maya: The boiler stopped
On Android, it usually looks like this:
15/01/2026, 10:30 - Maya: The boiler stopped
The date order appears to follow your phone’s settings, so US phones often write 1/15/26, 10:30 AM. A line with no date belongs to the message above it. That’s what makes splitting a chat harder than it looks.
Word: the quick one
Word is the easiest choice if you want to read, tidy or print the chat.
- In Word, choose File, then Open, and pick the text file. You may need to show all files.
- If the letters or emoji look wrong, close the file and turn on Confirm file format conversion on open under File, Options, Advanced, General.
- Open the file again and choose Encoded Text, then Other encoding, then Unicode (UTF-8). Microsoft’s page covers these steps for Word on Windows.
- Save it as a Word document.
A long chat can be slow to open. Making the text smaller cuts the page count a lot.
Google Sheets: works with most date formats
Google Sheets is the simpler spreadsheet route, because this formula keeps the date and time as text.
- Open a new spreadsheet, then choose File, then Import, and upload the text file.
- For the separator, choose Custom and type a character your chat never uses, such as
¦. This keeps each line in one cell. - Untick Convert text to numbers, dates, and formulas if you see it. A message starting with
=then stays as text. - Click cell B1 and paste this formula:
=IFERROR(REGEXEXTRACT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,UNICHAR(8206),""),UNICHAR(8207),""),UNICHAR(65279),""),UNICHAR(8239)," "),"^\[*([0-9]{1,4}[./-] *[0-9]{1,2}[./-] *[0-9]{1,4}\.*)[^0-9]*([0-9]{1,2}[:.][0-9]{2}[^\]-]*)[\] -]+([^:]+): (.*)$"),"")
- Copy it down the column. Columns B to E now hold the date, time, sender and message.
If the formula is refused, replace the commas between its parts with semicolons, which some regions need. If column B stays blank on every line, your date format isn’t covered.
Lines that continue a message come out blank in those columns, and their text is still in column A. WhatsApp’s own notices can look like messages, especially on iPhone, so check them before you count anything. Check that accents and emoji have come through correctly, because Google doesn’t say how its import handles character encoding.
Excel: more steps, and real dates
Excel takes longer, and these formulas only work if your lines look exactly like 15/01/2026, 10:30 or [15/01/2026, 10:30:12]: a two-digit day and month, a four-digit year, a comma and a 24-hour clock. For anything else, use the Google Sheets route.
Bring the file in:
- On the Data tab, choose From Text/CSV and pick the file.
- Set File Origin to 65001: Unicode (UTF-8). Microsoft says UTF-8 is only detected by itself when a file starts with a special marker, so emoji and accents can break without this.
- If the preview splits your lines into columns, choose Transform Data, open the Source step and set Open File As to Text. If that shows an error, delete the Changed Type step under Applied Steps.
- Load it. Your lines should be in column A, starting at A2.
- If it loaded as a table, choose Table Design, then Convert to Range.
Then add these formulas to row 2 and copy them down:
| Column | Holds | Formula |
|---|---|---|
| B | The cleaned line | =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,UNICHAR(8206),""),UNICHAR(8239)," "),UNICHAR(65279),"") |
| C | The date as text | =IFERROR(IF(LEFT(B2,1)="[",MID(B2,2,FIND("]",B2)-2),LEFT(B2,FIND(" - ",B2)-1)),"") |
| D | The real date and time | =IFERROR(IF(AND(MID(C2,11,2)=", ",OR(LEN(C2)=17,AND(LEN(C2)=20,MID(C2,18,1)=":"))),DATE(VALUE(MID(C2,7,4)),VALUE(MID(C2,4,2)),VALUE(LEFT(C2,2)))+TIME(VALUE(MID(C2,13,2)),VALUE(MID(C2,16,2)),IF(LEN(C2)>17,VALUE(MID(C2,19,2)),0)),""),"") |
| E | Everything after the date | =IF(D2="",B2,IF(LEFT(B2,1)="[",MID(B2,FIND("] ",B2)+2,LEN(B2)),MID(B2,FIND(" - ",B2)+3,LEN(B2)))) |
| F | The sender | =IF(D2="",F1&"",IFERROR(LEFT(E2,FIND(": ",E2)-1),"")) |
| G | The message | =IF(D2="",E2,IFERROR(MID(E2,FIND(": ",E2)+2,LEN(E2)),E2)) |
Format column D as a date and time. A message with several lines keeps one row per line, each with the same sender. If column D stays blank on every row, your format isn’t covered, so use Google Sheets. If Excel refuses a formula, replace the commas between its parts with semicolons.
On a Mac, Microsoft says Excel 2016 and 2019 have no Power Query. Its Excel blog says Excel for Microsoft 365 on a Mac has the editor from version 16.69. If the steps above don’t match your screen, use Google Sheets.
The traps
- Dates can silently come out wrong. Excel’s DATE function rolls over when the month is above 12, so a month-first date becomes a wrong date with no error. Always check your first and last messages against the chat.
- Don’t double-click a CSV to reopen it. Messages starting with
=,+,-or@can be read as formulas, which OWASP calls CSV injection. Chat text is written by other people, so open CSV files through From Text/CSV. - Long numbers can change. Excel can drop leading zeros and cut long numbers, which matters for phone numbers and codes in a message. Check the settings under File, Options, Data.
- Limits. Excel allows 1,048,576 rows and 32,767 characters in a cell. Google Sheets allows 20 million cells or 100 MB.
To save as a CSV, choose File, then Save As in Excel, and pick the UTF-8 CSV option if your version lists it. A CSV keeps only the active sheet and loses formatting.
What a spreadsheet leaves out
Photos and voice notes stay outside the sheet. An iPhone line usually reads <attached: 00000012-PHOTO-2026-01-15-10-32-40.jpg> when you export with media, and an export without media shows image omitted on iPhone or <Media omitted> on Android. If people in your chat talk more than they type, the sheet misses much of what was said.
If you only wanted to read or count
Many people build a spreadsheet to answer simple questions, such as who writes more or when a chat was busiest. You can open your export on Chatonfile.com and get those answers free on your own device, as charts of who writes what and when, along with search and a filter for each person.
We don’t make spreadsheets. If you need a record to keep or hand over, we make a dated PDF with every message numbered, every voice note in the export written out and a summary of the key highlights and promises. For the voice notes, export with media.
Common questions
Can WhatsApp export a chat directly to Excel?
No. WhatsApp's help page describes the export as a text file, and we found no Excel or CSV option. You bring that text file into a spreadsheet yourself.
Why are my dates wrong in Excel?
Excel can read day and month the wrong way round, depending on your computer's region and how the phone wrote the date. Check your first and last messages against the chat. Keeping dates as text, as our Google Sheets formula does, avoids the problem.
Will photos and voice notes go into the spreadsheet?
No. They're separate files in the export, and the text only shows a file name or a line such as Media omitted. Voice notes need writing out separately.
How long a chat fits in Excel?
An Excel sheet holds 1,048,576 rows and each cell holds up to 32,767 characters. Each line of a chat takes one row, so most chats fit. Google Sheets allows up to 20 million cells or 100 MB.


