To mask personal data in a CSV before sharing it, first delete every column the recipient does not need, then mask the identifying columns they do need to see the shape of (emails, phone numbers, account or employee IDs), and check the result row by row before you send it. Do it on your own PC rather than in a web tool, so the unmasked file never leaves your machine. CSVPrune masks sensitive fields such as emails, phones, and IDs locally with no network connection, and its audited export records every changed cell for your records.
This page is practical guidance, not legal advice. If you work under GDPR or another privacy law, your privacy lead decides what is required.
Mask emails, phones, and IDs in a CSV on your PC, with nothing uploaded.
Get it from Microsoft
When do you need to mask a CSV?
Common moments:
- Sending a sample to a vendor so they can build an import or fix a bug.
- Sharing a support export with a developer who needs the structure, not the customers.
- Training or demo data built from a real export.
- Moving data between teams where only some people should see full contact details.
- Attaching a file to a ticket that many people can read.
In each case the recipient usually needs the columns, formats, and row count, not the actual names and addresses.
What is the difference between deleting, masking, and pseudonymising?
| Approach | What it does | Example | When to use |
|---|---|---|---|
| Delete the column | Removes the data entirely | Drop the Phone column | The recipient does not need it at all |
| Mask | Hides part or all of a value | j***@example.com | They need to see the format, not the value |
| Pseudonymise | Replaces values with a stand-in that only you can link back | Customer 000184 | They need to tell rows apart or join files |
| Aggregate | Summarizes rows | Orders per region | They need totals, not records |
The legal terms matter if you work under the EU’s General Data Protection Regulation. Article 4(5) of the GDPR defines pseudonymisation as processing personal data so it “can no longer be attributed to a specific data subject without the use of additional information, provided that such additional information is kept separately and is subject to technical and organisational measures.” Recital 26 adds that pseudonymised data “should be considered to be information on an identifiable natural person,” while the principles of data protection “should therefore not apply to anonymous information.”
In plain terms: if you, or anyone, can link the masked file back to people with a key or lookup table, it is still personal data and should be handled that way. Masking reduces risk; it does not by itself make a file anonymous.
Which columns usually need attention?
Go through every column, not just the obvious ones:
| Column type | Examples | Usual treatment |
|---|---|---|
| Direct identifiers | Name, email, phone, street address | Delete or mask |
| Government and account numbers | Tax IDs, account numbers, employee IDs | Delete, or mask all but a few characters |
| Free-text fields | Notes, comments, support messages | Delete, or review; people type anything in these |
| Quasi-identifiers | Postal code, birth date, job title | Generalize, such as birth year instead of date |
| Technical identifiers | IP addresses, device IDs, cookie IDs | Delete or mask |
| Internal keys | Customer ID used to join tables | Pseudonymise if the recipient must join files |
Free-text columns are the most common leak. A “Notes” column can contain phone numbers, medical details, or a customer’s complaint in their own words.
Profile every column first, so nothing personal hides in a notes field.
Get it from Microsoft
How do I mask a CSV with CSVPrune?
CSVPrune is a Windows CSV cleaner that works entirely offline. Its Store listing says it can “mask sensitive fields (emails, phones, IDs) when you need to share.” A careful workflow:
- Open a copy of the file. Keep the original where only authorized people can reach it.
- Profile the columns. CSVPrune shows each column’s types, blanks, distinct counts, and invalid cells, which helps you spot which columns hold personal data.
- Delete columns the recipient does not need. This is the strongest protection.
- Mask the identifying columns that remain: emails, phones, IDs.
- Search free-text columns with regex for patterns such as email addresses or long digit runs, and clean or delete them.
- Toggle original versus cleaned to confirm every masked value.
- Run an audited export. CSVPrune can write a before and after sidecar JSON recording every changed cell. Keep that sidecar with the original, not with the shared file, because it contains the original values.
- Save the steps as a recipe so the next export is masked the same way, or point a watch folder at it.
Values stay text throughout, so ID formats and leading zeros are not altered by accident. See why Excel removes leading zeros for what happens otherwise.
Why not use an online CSV tool?
Uploading the unmasked file to a website to mask it means the personal data has already left your control before it is protected. Depending on your policies, that upload may itself need approval. A local tool avoids the question: CSVPrune makes no network connections, so the only file that leaves your PC is the masked one you choose to send.
What are the most common masking mistakes?
These are the slips that turn a careful job into an incident:
- Masking the visible columns and forgetting hidden ones. A CSV exported from a CRM can have dozens of columns, and the personal ones are not always at the front. Profile every column.
- Leaving the email domain or full phone prefix when it identifies people. In a small company, a masked email with a rare domain can still point to one person.
- Sending the sidecar or the original by mistake. Name files clearly, for example with “MASKED” in the shared file name, and keep the original in a separate folder.
- Masking in a copy, then sending the wrong copy. Open the file you are about to attach and check a few rows one last time.
- Reusing an old masked file after the source changed. Rerun the recipe on the new export instead.
What should I check before I send the file?
- Row count matches what you expect; no accidental filtering.
- Every masked column shows masked values in a random sample of rows, not just the first screen.
- Free-text columns are gone or reviewed.
- The file name does not contain a customer or employee name.
- The sidecar and original stay with you.
- The recipient is the right person, and the channel is approved.
Frequently asked questions
Is a masked CSV anonymous under GDPR?
Not necessarily. If the data can still be linked to people using additional information, GDPR treats it as personal data. Ask your privacy lead.
Should I mask or delete a column?
Delete it if the recipient does not need it. Mask only what they need to see the format of.
Can CSVPrune mask data in many files at once?
You can save masking steps as a recipe and batch-run it across a folder, or use a watch folder so new files are masked automatically.
Does CSVPrune send my data anywhere?
No. It runs locally with no network access.
Try CSVPrune
Get CSVPrune from the Microsoft Store and read the CSVPrune product page. Related: CSV cleaner for Windows and batch clean CSV files automatically.
Share the shape of your data, not the people in it.
Get it from Microsoft
Microsoft, Windows, and Excel are trademarks of the Microsoft group of companies. Other product names are trademarks of their owners. CSVPrune is not affiliated with or endorsed by any of them.
Last updated 17 October 2026. Published by Automata Labs, a software company in Canada.