How to a complete external-link report beyond excel's edit links dialog
- Step 1Drop the workbook onto the auditor — Upload the
.xlsx. JSZip unpacks the OOXML container in your browser. This replaces the need to open Edit Links, Queries & Connections, and manually scan for hyperlinks separately. - Step 2Read the unified inventory — The report shows
Found N external link(s):then numberedn. [type] urllines. Group mentally by type:external_ref= workbook links,hyperlink= cell links,data_connection= live connections. - Step 3Compare against what Edit Links showed — Anything tagged
hyperlinkordata_connectionis, by definition, something Edit Links never displayed. That delta is the value of a full audit. - Step 4Act on each class in the right Excel dialog — Break
external_reflinks via Data → Edit Links → Break Link; removehyperlinkcells via Remove Hyperlink; deletedata_connectionentries under Data → Queries & Connections. - Step 5Trace dependencies if a link is consumed widely — If an external reference feeds many cells, map its reach before breaking it with the Dependency Map so you understand what will fall back to cached values.
- Step 6Re-audit for a clean, documented result — Re-run the auditor after changes. A
No external links found in this workbook.result is your complete, single-report sign-off — broader and more defensible than an empty Edit Links dialog.
Edit Links vs. the full audit
Coverage comparison. The audit reports all three classes from the OOXML; Edit Links covers one.
| Reference class | Report label | Shown by Edit Links? | Where the audit reads it |
|---|---|---|---|
| Workbook-to-workbook reference | external_ref | Yes | xl/externalLinks/_rels/*.rels (relationship Target) |
| Cell hyperlink (URL / file / mailto) | hyperlink | No | xl/worksheets/_rels/*.rels (hyperlink relationships) |
| Data connection (ODBC / OLEDB / Power Query / .odc) | data_connection | No (separate Queries & Connections dialog) | xl/connections.xml (connection=, odcFile=) |
What the report does and doesn't include
Setting expectations precisely so you know what the inventory proves.
| Aspect | Behaviour |
|---|---|
| Link type label | Included — [external_ref], [hyperlink], or [data_connection] |
| Target URL / path / connection string | Included — listed verbatim, one per line |
| Source cell / sheet of each link | Not included — use Excel's Ctrl+F on the target to locate |
| Image/shape-anchored hyperlinks | Not included — those live in the drawings parts |
| Full Power Query M-query text | Not included — the connection entry is reported, not the M body |
| Visibility filtering | None — hidden/very-hidden sheets' links are still scanned |
Cookbook
Side-by-side scenarios showing the gap between Excel's Edit Links view and the full audit. Targets anonymised.
Edit Links shows nothing; the audit shows a hyperlink
There are no workbook references, so Edit Links is empty — but a cell hyperlinks to an intranet page. Only the full audit catches it.
Edit Links dialog: (no links) Audit report: Found 1 external link(s): 1. [hyperlink] https://intranet.example.com/policy
A data connection invisible to Edit Links
Edit Links is for workbook links only; the live SQL connection lives in a different dialog. The audit reports it in the same inventory.
Edit Links dialog: (no links) Audit report: Found 1 external link(s): 1. [data_connection] Data Source=sql-rpt-01;Initial Catalog=Ops
All three classes in one report
A mature model with a workbook reference, a docs hyperlink, and a Power Query feed. Edit Links would show only the first.
Audit report: Found 3 external link(s): 1. [external_ref] file:///\\nas\inputs\drivers.xlsx 2. [hyperlink] https://docs.example.com/methodology 3. [data_connection] Provider=Microsoft.Mashup.OleDb.1;...
Edit Links lists a link the audit also confirms
When a workbook reference exists, both agree on it — but only the audit adds the hyperlink and connection context around it.
Edit Links dialog: drivers.xlsx (Status: OK) Audit report: Found 1 external link(s): 1. [external_ref] file:///\\nas\inputs\drivers.xlsx
Clean across all three classes
The full-audit equivalent of a totally self-contained workbook: no references of any kind.
Audit report: No external links found in this workbook.
Edge cases and what actually happens
Edit Links is empty but the workbook clearly links out
Audit fills the gapEdit Links shows only workbook references, so a file whose only external links are hyperlinks or data connections appears 'clean' there. The full audit reports those classes too — the entire reason to use it over the built-in dialog.
Source cell of each link
Not reportedThe report lists type and target, not the cell or sheet. To locate a link in Excel, copy the target string and use Ctrl+F. The audit's contribution is completeness of the inventory, not cell-level mapping; for dependency tracing use the Dependency Map.
Power Query M-query body
Not parsedThe auditor reports the connection entry from xl/connections.xml (the connection=/odcFile= value), not the full M code stored in the query parts. You learn that a connection exists and its connection string — sufficient for an audit and more than Edit Links ever offered. Inspect the M in Power Query Editor for the full query.
Hyperlink anchored to a chart or image
Not detectedShape- and image-anchored hyperlinks live in xl/drawings/_rels/*.rels, outside the cell-hyperlink relationships the scan reads. The audit covers cell hyperlinks, workbook references, and connections — review embedded objects separately.
Defined name pointing at another workbook
Detected via the relationshipSuch a name needs an externalLinks relationship, so its target appears as external_ref even though Edit Links may present it confusingly. The audit confirms the external file is referenced; remove the name in Formulas → Name Manager to clear it.
Hidden and very-hidden sheets
ScannedHyperlink relationships are stored per-worksheet regardless of visibility, and externalLinks/connections.xml are workbook-level, so links on hidden or very-hidden sheets still appear in the report — broader than what you'd find clicking through visible tabs. To remove those sheets, use the Hidden Sheet Destroyer.
Encrypted workbook
Cannot parseAn open-password-encrypted file is an encrypted container JSZip can't unpack, so no parts are scanned. Remove the password in Excel, then audit. To evaluate that password's strength, see the Password Entropy Auditor.
.xls / .xlsb input
RejectedLegacy .xls (OLE) and binary .xlsb are not OOXML ZIP containers and can't be read. Save as .xlsx first, then run the full audit.
A reference that exists only at runtime via VBA
Not detectedIf a macro builds an external reference when the file opens, there's no static part to scan at rest. The audit reflects the file's stored state. Strip macros with the VBA Macro Stripper for a deterministic, link-free file.
Truly self-contained workbook
ExpectedWhen none of the three scanned parts carries a target, the report is No external links found in this workbook. Across all three classes — workbook links, hyperlinks, connections — the file is clean, a stronger statement than an empty Edit Links dialog.
Frequently asked questions
What does Edit Links miss that this audit catches?
Edit Links shows only workbook-to-workbook references. It does not show cell hyperlinks (reported here as hyperlink) or data connections — ODBC, OLEDB, and Power Query (reported as data_connection). This audit reports all three classes in one inventory read straight from the OOXML, so you get the two whole categories Edit Links never displays.
Does it report the same workbook references Edit Links shows?
Yes — workbook-to-workbook references are reported as external_ref, read from xl/externalLinks/_rels/*.rels. So the audit is a superset: everything Edit Links shows, plus hyperlinks and connections it doesn't.
Will it show me which cell or sheet each link is in?
No. It lists each link's type and target URL/path, not its location. To find a link in Excel, copy the target and use Ctrl+F, or check Name Manager for external_ref references. The audit's strength is a complete inventory; cell-level mapping is a follow-up in Excel.
Does it detect Power Query and ODBC connections?
Yes — connections in xl/connections.xml, including Power Query and ODBC/OLEDB, are reported as data_connection via their connection= / odcFile= attributes. It reports that the connection exists and its connection string, not the full M-query body.
Why audit from the OOXML instead of trusting Excel's dialogs?
Because Excel spreads link information across multiple dialogs (Edit Links, Queries & Connections) and never surfaces hyperlinks at all. Reading the file's actual XML parts gives one complete, consistent inventory of what's really stored — independent of which dialog you remember to open.
Does it scan hidden and very-hidden sheets?
Yes. Hyperlink relationships are stored per worksheet regardless of the sheet's visibility, and externalLinks and connections.xml are workbook-level parts, so links on hidden and very-hidden sheets are included. That makes the audit more thorough than clicking through visible tabs.
Can it remove the links it finds?
No — it's a report, not an editor. Break workbook references via Data → Edit Links → Break Link, remove cell hyperlinks, and delete connections under Data → Queries & Connections. To freeze all live formulas to static values in one pass, use the Formula to Value converter, then re-audit.
Does it parse the full M query of a Power Query connection?
No. It reports the connection entry and its connection string from xl/connections.xml. The full M code lives in the query parts and is not extracted — open the Power Query Editor in Excel to read the complete query.
Is my file uploaded for the audit?
No. Everything runs in your browser with JSZip — the workbook is never transmitted. Suitable for sensitive and regulated files where uploading isn't an option.
What file types can it read?
.xlsx only. Legacy .xls (OLE compound file) and binary .xlsb aren't OOXML ZIP containers and are rejected — re-save them as .xlsx in Excel first.
Does a clean audit prove the file has no links at all?
It proves there are no links in the three scanned classes — workbook references, cell hyperlinks, and data connections. It does not vet image/shape-anchored hyperlinks (in the drawings parts) or references a macro might build at runtime. For those, review embedded objects and strip macros separately.
How big a workbook can it handle?
Pro audits files up to 50 MB (5 files); Developer raises that to 500 MB and unlimited files. The 100,000-row Pro cap doesn't apply meaningfully — the scan reads XML parts, not data rows.
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.