|
最近闲下来,静心把《EXCEL二进制文件格式》从头到尾通读了一遍
看来,前面的猜测是正确的,EXCEL文件确实把外部引用用到的数据全部储存在“肚子”里了。
下面是原文:
5.10 Internal and External References
This chapter describes all types of 3D and external references. In detail, this could be:
• A reference to a cell or a cell range of another sheet in the same workbook (3D reference);
• A reference to a cell or a cell range of a sheet in another workbook (external reference);
• A reference to a global or local defined name (internal name);
• A reference to a defined name in another workbook (external name);
• An external function (add-in, sheet macro, Basic macro);
• A DDE link;
• An OLE object link.
For external references and external names a combination of XCT and CRN records will occur. These records storevalues of cells of the document. If the external document cannot be found, these values will be used to get the result of an external reference. An XCT record (➜6.114) contains the number of following CRN records. A CRN record (➜6.24)stores the contents of one cell or a sequence of cells of one row. Fragmentary cell ranges or cell ranges spanning over
more than one row are split into several CRN records. 3D references do not use these records because the referencedcells are located in the own document.
It is possible to determine whether the cached values (the XCT and CRN records) will be stored in the file. In BIFF3and BIFF4 this option is stored in the WSBOOL record (➜6.113). From BIFF5 on the optional record BOOKBOOL(➜6.9) contains this option.
——引自:OpenOffice.org's Documentation of the Microsoft Excel File Format
Excel Versions 2, 3, 4, 5, 95, 97, 2000, XP, 2003
这段文字很明确地指出:被引用的数据被储存到(本工作簿的)CRN记录中。如果外部文件找不到,EXCEL程序就引用CRN记录的数据来求出结果。
这种储存方式适用于EXCEL5.0-EXCEL2003。在微软网站的另一个文件中还指出,这种数据结构在EXCEL2007中依旧沿用。 |
|