How to remove internal reviewer notes and comments from excel before sharing
- Step 1Freeze the final version and duplicate it — Finish every content edit first. Copy the file — the purge deletes comment parts permanently, so you want the annotated working version preserved for your team's records.
- Step 2Sign in to Pro and open the Comment & Note Purger — Client models are usually well within the Pro ceiling (50 MB / 100,000 rows). Larger consolidated models may need Pro-media (200 MB) or Developer (500 MB). Free tier cannot run this tool.
- Step 3Drop the .xlsx (or .xlsm) deliverable onto the purger — Provide the OOXML workbook. If the model was saved as a legacy
.xls, re-save it as.xlsxin Excel first so the comment parts exist in the format the tool reads. - Step 4Run the single purge pass — JSZip removes every
xl/comments*,xl/threadedComments/*, andxl/persons/*part and cleans up the<Relationship>,<Override>, and<legacyDrawing/>references. No options to choose. - Step 5Confirm the parts-removed count looks right — The result shows a
change(s)figure (parts removed). For a model reviewed across several sheets, expect several changes. Zero changes means the file had no comments to begin with. - Step 6Spot-check then deliver — Open
model-no-comments.xlsx, hover the cells that previously had red triangles, and check Review → Comments. Empty across all tabs = safe to send.
Reviewer-residue audit: what gets cleared
The three annotation surfaces a client could read, where each lives, and whether the purger handles it.
| Residue a client could see | OOXML location | Cleared by purger? |
|---|---|---|
| Reviewer note text ('WRONG — recheck') | xl/comments*.xml | Yes |
| Threaded comment reply chains | xl/threadedComments/*.xml | Yes |
| Comment author name + account email | xl/persons/person.xml | Yes |
| 'Last modified by' / company metadata | docProps/core.xml, app.xml | No — use a metadata wiper |
| Tracked-changes history (shared workbook) | change log | No — accept/reject in Excel |
| Cell values, formulas, scenarios | worksheet XML | Preserved (untouched) |
Recommended pre-delivery sequence
Comment purging is one link in a client-ready chain. Each step targets a distinct residue type.
| Order | Tool | Removes | Tier |
|---|---|---|---|
| 1 | excel-formula-to-value | Live formulas (freeze the math, hide logic) | Pro |
| 2 | Comment & Note Purger (this tool) | Notes, threaded comments, author records | Pro |
| 3 | excel-app-metadata-wiper | Application + author metadata | Pro |
| 4 | office-doc-property-wiper | Core document properties | Pro |
| 5 | excel-external-link-auditor | Surfaces links to internal files | Pro |
Cookbook
Real client-delivery scenarios, shown at the OOXML level where reviewer residue actually hides.
The classic: a 'we're not sure about this' note left in a model
A reviewer flagged a revenue assumption as shaky. The note is invisible until the client hovers — at which point your uncertainty is on display. The purge removes it cleanly.
Before: xl/comments1.xml -> 'Assumption unverified - DO NOT present as fact' Sheet 'Revenue' cell C14 shows a red triangle After purge: xl/comments1.xml deleted; triangle gone Review > Comments on 'Revenue': empty Result: "2 change(s)" (comments part + persons part)
Deleted the comment, but the author email stayed
A partner deleted the visible threaded comment in Excel, but the person record naming the author remained. Only a full purge removes the identity.
After manual delete in Excel: xl/threadedComments/... (empty / removed) xl/persons/person.xml -> displayName 'A. Partner', userId a.partner@firm.com <- still here! After purge: xl/persons/person.xml deleted No author identity recoverable from the file.
Freeze the math, then purge the commentary
For a fixed-price proposal you often want to deliver values without exposing the formula logic — and without the reviewer commentary. Two tools, in order.
Step 1: excel-formula-to-value =Assumptions!B2*1.15 -> 172500 (formula replaced by value) Step 2: Comment & Note Purger removes 'margin padded to 15% per CFO' note Deliverable: numbers only, no logic, no commentary.
Multi-tab model reviewed by three people
Three reviewers across five tabs leave a scatter of notes and threaded comments. One purge clears the lot.
Before: xl/comments1.xml, comments2.xml (Notes on 2 tabs) xl/threadedComments/threadedComment1.xml (Comments on 1 tab) xl/persons/person.xml (3 authors) After purge: all removed in one pass. Result: "4 change(s)"
Verifying a delivery is clean before it leaves the building
A quick ZIP inspection gives you a defensible 'no comments shipped' check for compliance.
unzip -l deliverable-no-comments.xlsx | grep -Ei 'comments|persons' # (no matches) -> safe to send # the working copy still has them, as expected: unzip -l deliverable-working.xlsx | grep -Ei 'comments|persons' # xl/comments1.xml ...
Edge cases and what actually happens
Author email survives a manual comment delete in Excel
Why purgeDeleting a threaded comment in Excel does not always remove the xl/persons/person.xml part that names its author. A client could unzip the file and read displayName and userId (often an email). The purger always removes xl/persons/, closing this leak.
Free tier account
Rejected — Pro requiredThe purger is Pro-gated. A Free login is rejected before processing. Client deliverables are exactly the use case Pro is meant for — upgrade to run it.
You only want to keep one harmless comment
Not supportedThere is no selective mode — it removes every comment on every sheet. If one annotation is genuinely needed (e.g. a 'figures as of Q2' note), convert it to a normal cell label before purging, or add it back in the delivered copy afterward.
Model delivered as a legacy .xls
Rejected (wrong format)Binary .xls files don't contain the xl/comments OOXML parts. Re-save the model as .xlsx in Excel (File → Save As → Excel Workbook) before purging, then deliver the modern format.
Data-validation 'helper' prompts are not comments
By designInput messages set via Data Validation are part of the validation object, not annotations, and are preserved. They rarely contain sensitive text, but if one does, edit the validation rule in Excel — the purger won't touch it.
Tracked changes from a shared/co-authored history
Not coveredShared-workbook change tracking lives in a separate log, not in comment parts. Accept or reject all changes in Excel (Review → Track Changes → Accept/Reject) before delivery if that history is sensitive.
Metadata still names the last editor after purging comments
Use a metadata wiperThe purger does not touch docProps/core.xml (Last Modified By) or app.xml (Company). A clean comment purge can still leave your firm's name in document properties. Add excel-app-metadata-wiper and the office-doc-property-wiper to the chain.
Consolidated model exceeds the Pro 50 MB limit
Rejected — size limitLarge consolidations can top 50 MB. The file is rejected before processing at Pro tier — move to Pro-media (200 MB) or Developer (500 MB) rather than splitting the model, since purging itself scales fine.
Frequently asked questions
Does it catch comments left by every reviewer, or just one type?
Every type. Legacy Notes (xl/comments*), Excel 365 threaded Comments (xl/threadedComments/*), and the author/person records (xl/persons/*) are all removed in one pass, regardless of which Excel version each reviewer used.
Will the model still calculate correctly after purging?
Yes. Only comment-related parts are deleted. Every formula, value, named range, and conditional format is preserved exactly, so the deliverable recalculates identically to the working copy.
Can it leave the author names out so the client can't see who reviewed it?
Yes — that is automatic. Threaded-comment authors are stored in xl/persons/, which the purger always removes. Display names and account emails of your reviewers are gone from the file.
Can I keep comments on some tabs and remove them from others?
No. The purge is whole-workbook with no per-sheet or per-comment selection. To keep specific information, turn it into ordinary cell content before purging, or re-add it to the delivered file.
Is the result a real Excel file the client can open normally?
Yes. The output is a standard binary .xlsx named yourfile-no-comments.xlsx. The tool repairs the relationship and content-type manifests so Excel opens it without a repair prompt.
Do I need to upload the model to your servers?
No. Everything runs in your browser via JSZip. A confidential pre-deal model and its candid internal notes never leave your machine.
Should I run the metadata wipers as well?
For a true client-ready file, yes. The purger clears comments; excel-app-metadata-wiper clears application/author metadata and the office-doc-property-wiper clears core document properties. Comments and metadata are different parts of the file.
Is there an undo if I purge the wrong file?
No — the comment parts are deleted from the output. The tool writes a new -no-comments.xlsx file rather than overwriting your input, so your original (annotated) copy is your undo. Always keep that working copy.
Does it remove tracked changes from a shared workbook?
No. Tracked changes are stored separately from comment parts. Accept or reject them in Excel's Review tab before delivery if that history is sensitive.
What's the largest model I can purge?
Up to your tier's file-size ceiling: Pro 50 MB, Pro-media 200 MB, Developer 500 MB. Row count limits (100,000 / 500,000 / unlimited) also apply, though purging is bound by file size more than row count.
How many 'changes' should I expect for a typical model?
The count equals the number of comment-related parts removed — usually a handful for a multi-tab model (one per comments file, plus the persons file). It's a sanity check, not a per-comment total.
What if I also want to hide the formula logic?
Run excel-formula-to-value before the purger. That replaces live formulas with their computed results, so the client sees numbers without your modelling logic — and then the purger strips the commentary about that logic.
Privacy first
Every JAD Excel tool runs entirely in your browser using SheetJS and ExcelJS. Your spreadsheets, formulas, and data never leave your device — verified by zero outbound network requests during processing.