To extract comments from a PDF to Excel, export the annotations, not the page. Comments are stored separately from the text, so use your PDF editor's comment export or a short script that lists each note with its page, author and date. Open that list in Excel, add owner and status columns, and work through it.
Why do PDF comments stay behind when the page converts?
PDF comments stay behind because they live in annotations, objects attached to a page but kept apart from the page's printed content. Sticky notes, text boxes, highlights and strike-throughs are all annotations. Copying or converting the page reads the printed content only, which is why the comments never come along.
That separation is useful. It means an exported comment arrives with its own details, not just its words. The PyMuPDF annotation reference lists what a reader can get from each one: the comment text, a title that by convention holds the author, creation and modification dates, a subject, and an annotation type such as Text or FreeText. Add the page number and you have a full row for a spreadsheet.
The flip side is that a converter is the wrong tool. A PDF to Excel conversion, or copying a PDF table into Excel, gives you the page's tables and text and leaves every note behind.
Exporting PDF comments with author, page and date
Exporting comments with author, page and date means listing every annotation as one row. Many PDF editors have a comments panel that can export or summarise all notes, though the menu and the output format vary by product and version. A short script gives the same list in any setting, and saves it as a CSV.
From your PDF editor
Open the comments panel and look for an export, summary or "list comments" option. Some editors write a data file meant for importing comments into another copy of the PDF, which is not easy to read in Excel. A summary or a CSV-style export is what you want. Check your editor's own help pages, because these features move between releases.
With a script
The Python library PyMuPDF reads annotations directly. Install it with pip install pymupdf, then:
import csv, pymupdf
doc = pymupdf.open("draft-report.pdf")
with open("comments.csv", "w", newline="", encoding="utf-8") as f:
w = csv.writer(f)
w.writerow(["page", "type", "author", "date", "comment"])
for page in doc:
for annot in page.annots():
info = annot.info
w.writerow([page.number + 1, annot.type[1], info["title"],
info["modDate"], info["content"]])
Run it from a terminal in the folder that holds the PDF. If you work at the command line already, extracting PDF tables from the command line covers tools for the page text side of the same file. If you would rather stay inside Excel, automating PDF imports with Excel VBA covers macros that bring PDF content into a workbook.
The dates come back as PDF date strings, which start with D: followed by the year, month, day and time, such as D:20260314093000. In Excel, =DATE(MID(D2,3,4),MID(D2,7,2),MID(D2,9,2)) turns that into a real date.
Turning exported PDF comments into an Excel review list
An exported list becomes a review list once each comment has an owner, a status and a place in a sorted order. Add those columns beside the exported ones, sort by page, and the sheet reads like the document. Then filter by owner to hand out work, and by status to see what is left.
Here is a worked example of a made-up review list after export. All names and comments are invented.
| Page | Type | Author | Date | Comment | Owner | Status |
|---|---|---|---|---|---|---|
| 2 | Text | J. Park | 2026-03-14 | Update the opening balance figure | Finance | Open |
| 2 | Highlight | J. Park | 2026-03-14 | (no note) | Ignore | |
| 4 | FreeText | M. Ortiz | 2026-03-15 | Wrong date on the March fee | Finance | Done |
| 7 | Text | M. Ortiz | 2026-03-15 | Chart labels unreadable | Design | Open |
Three habits keep the list useful:
- Freeze the exported columns. Never edit the comment text in the sheet. Add your own notes in a separate column, so a fresh export can be compared with the old one.
- Use a fixed list of statuses. Data Validation with Open, Done and Ignore stops "done", "Done." and "fixed" from splitting your filter.
- Count by status. A small summary with COUNTIFS by owner and status shows progress at a glance.
Comments are common on statements under review too. An accountant may mark questions on a converted statement, such as one from a Bank of America statement converted to Excel, and the same review list keeps the questions and answers together.
Which PDF comments drop out of the export?
Some comments drop out of an export, or come out without the detail you need. Replies to a comment, highlights with no note attached, comments flattened into the page, and markups made in another program's own format are the usual gaps. Compare the exported count with the count in your editor's comments panel.
- Replies. A reply may be stored as an annotation of its own. If the script lists it as a separate row, rebuild the thread order by date.
- Highlights without notes. These export with empty comment text. Keep them if the highlight itself is the message, or filter them out.
- Flattened comments. If someone printed the PDF with comments to a new PDF, the notes are now part of the page and are no longer annotations. They must be copied or converted like any other text.
- Locked or signed files. A file that forbids changes can usually still be read, but if the export fails, check the file's security settings first.
FastBankConvert works on a different part of a PDF: it reads a bank statement's transaction lines into Excel, CSV or JSON. It is not open yet, and the get-started page takes your email for the launch.