So, I've got this working now, thanks again. When I did my simple test, I noticed that a formula evaluator (which is documented as keeping "a cache of all previously calculated intermediate cell values") actually keeps ALL values around, whether they were calculated or just entered. So, if I did the process in this order:
1. Create the evaluator for wb1 2. Change a value in wb1 3. Evaluate wb2 (which references wb1) Values in wb2 would be calculated as though step 2 had never taken place. If true, that's potentially very useful and worth documenting. (In my case, it means I can keep formula evaluators cached as references without caring whether other threads might change the base workbooks for their own purposes.) On Thu, Oct 6, 2016 at 11:12 AM, Nick Burch <apa...@gagravarr.org> wrote: > On Thu, 6 Oct 2016, Blake Watson wrote: > >> That's just how Excel stores it for XLSX files. The link table provides >>> the mapping between those indexes and the names shown in Excel. When POI >>> hits one of those, it goes to the link table to find the name of the >>> file, >>> then checks for a setup referenced workbook with that name to resolve >>> things with >>> >> >> ​So, when POI sees the [1] how does it know that that should map to >> "myspreadsheet.xlsx"? Because the setupReferenced​Workbooks map is >> "name"->evaluator. I feel like not knowing this is the key to my >> confusion. >> > > The name to ID mapping is stored in the ExternalLinksTable, which comes > from another xml file within the .xlsx bundle. That's what POI uses to > lookup the name, and what Excel transparently uses when displaying the > formula > > Nick > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@poi.apache.org > For additional commands, e-mail: user-h...@poi.apache.org > -- *Blake Watson* *PNMAC* Application Development Manager 5898 Condor Drive Moorpark, CA 93021 (805) 330.4911 x7742 blake.wat...@pnmac.com <melanie.petros...@pnmac.com> www.PennyMacUSA.com <http://www.pennymacusa.com/>