This wiki page is a copy of the central help HTML, which contains links.
This tool lays out the dependencies between Excel files in a visual graph. Dependencies are based on Excel external references.
The colors used in the normal view depend on following conditions:
All Excel files with external links update those external links on startup (an Excel option)
If PivotTables are present, automatic update should also be enabled
No change in the linked file occurs while the dependent file is open, unless the user does a manual update before saving.
Calculations are performed automatically or before saving
Green color: this file seems up to date with regards to the files it depends on. If preconditions are met, it will be up to date
Orange color: this file has risk of not being up to date as it depends from a file which was modified after this file was opened.
Red color: this file could not be found, timestamp gets default of 1/1/1970
External links can be stored inside spreadsheet cells, via "=[]" references, but sometimes inside namded ranges.
Sometimes you just need to open and save a file when "cached and removed" references are detected. If you still cannot find a link, see this guide
A tree is a graph where every vertex has only one parent and there are no circular refernces. In order to guarantee up-to-date files, no circular links should exist ( A <-> B). When the tool opens in graph mode, this means no real tree could be constructed. For example, if A -> B ; and C -> B, this is not a real tree. But a tree is constructed anyway, where B will be defined twice, one original and one copie. When clicking on the tree selector, a "generated" tree will be shown, where copies will be shown if a node already was attached to a parent.
You need to have a recent (1.7) version of Java installed.
Windows: double click on the executable Showlinks.exe or start it from a cmd line:
Showlinks.exe [fileName to start.xls]
If you read in large .xlsx files, make sure your computer has enough memory (close other programs) so that the space reserved for the heap space is bigger then 1000MB. You can see the used value of this parameter after startup in the logging screen, eg: VMarguments:[-Xmx1024m]
The actual memory size can be found after the Max mem size.
System independent: Run the jar, specifying a max. heap size. For very large files, it may be necessary to use larger heap sizes (try the maximum which gives no errors on your system, eg. 1240) java -Xmx1024m -jar ShowLinks.jar [fileName to start.xls]
Select one of two modes in the upper left corner:
The selected file will be read, and the Excel external references (links) of this file will on their turn be read, repeating the process for its links, ... until all linked files are constructed in a graph.
When a file A contains a link to a file B, a directed arrow is drawn from A to B. If the modification date (as stored inside the file) of B is newer then the modifcation date of A:
A will get an orange color
The arrow (Edge) will be dotted
If you have a dependency A -> B -> C, and the modification date of B is older than C, then A will also be painted orange regardless of its own modification date.
This mode finds usages of Excel files in other Excel files in one or more folders. Compared to the previous mode, the arrows are reverted and links are not followed (since links are stored the other way around in Excel, as dependency).
The tool will look into the given folders (including subfolders) for files with the following extension:
xls, xlt, xlsx, xlsm, xlsb, xltx, xltm.
If this file contains a link, the target will also be drawn as a Vertex, but will not be parsed. If the checkbox "Stay in folders" is selected, the target will only be drawn if it is also in one of the selected folders.
Filters
To limit the number of files that will be parsed, one can filter subfolders or files, with include or exclude patterns.
You need to pass in regular expressions (Java version), where case insensitive substring matching is used.
If you pas in a starting file, only the files which depend (directly or indirectly) on this file will be shown.
Mouse functionality
Using the control buttons
The tool is written in Java and uses the Apache POI framework, the Jung and JGrapht libraries (handy PDF for background on those libraries.
The .exe file was generated with Launch4J.
If you want more verbose output, you need to change the log4j.properties file inside the jar (which is zip-compressed) and change the main log level from INFO to DEBUG.
See this Log4j tutorial for other log configuration options.