ContextCleaner: see every entry in the Windows 11 right-click menu, and which app added it — on the Microsoft Store.
Workflow CSVPrune

How to Mask Personal Data in a CSV Before You Share It (Emails, Phones, IDs)

Published October 17, 2026 Updated October 17, 2026 8 min read

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?

ApproachWhat it doesExampleWhen to use
Delete the columnRemoves the data entirelyDrop the Phone columnThe recipient does not need it at all
MaskHides part or all of a valuej***@example.comThey need to see the format, not the value
PseudonymiseReplaces values with a stand-in that only you can link backCustomer 000184They need to tell rows apart or join files
AggregateSummarizes rowsOrders per regionThey 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 typeExamplesUsual treatment
Direct identifiersName, email, phone, street addressDelete or mask
Government and account numbersTax IDs, account numbers, employee IDsDelete, or mask all but a few characters
Free-text fieldsNotes, comments, support messagesDelete, or review; people type anything in these
Quasi-identifiersPostal code, birth date, job titleGeneralize, such as birth year instead of date
Technical identifiersIP addresses, device IDs, cookie IDsDelete or mask
Internal keysCustomer ID used to join tablesPseudonymise 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:

  1. Open a copy of the file. Keep the original where only authorized people can reach it.
  2. Profile the columns. CSVPrune shows each column’s types, blanks, distinct counts, and invalid cells, which helps you spot which columns hold personal data.
  3. Delete columns the recipient does not need. This is the strongest protection.
  4. Mask the identifying columns that remain: emails, phones, IDs.
  5. Search free-text columns with regex for patterns such as email addresses or long digit runs, and clean or delete them.
  6. Toggle original versus cleaned to confirm every masked value.
  7. 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.
  8. 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.

// release_radar

Get notified about new releases.

We build native, local-first tools for professionals who refuse SaaS fatigue. Drop your email to hear about new apps, major updates, and zero-telemetry releases as they land on the Microsoft Store. No spam — just release news.