返回目录:文件问题
有如下工作簿和工作表:
excel2007是使用xml格式来存储的,把一个excel文件后缀改为.zip,打开之后就直接可以看到一个excel文件对应的xml格式的文件了。如下图所示:
1 _rels\.rels文件内容
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>
如果要自定义功能区,需要新建cutomUI文件和文件夹加入到压缩文件夹,然后在上述标签内建立文件之间的联系。
2 文件夹docProps下有两个文件
app.xml
core.xml
这里core是文件的创建时间和修改时间,标题,主题和作者。
app是文档的其他属性,文档类型、版本、是否只读、是否共享、安全属性等文档属性信息。
3 在xl目录下是文档的具体内容信息
文件夹xl下文件内容:
3.1 xl\workbook.xml文件内容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><fileVersion appName="xl" lastEdited="4" lowestEdited="4" rupBuild="4505"/><workbookPr defaultThemeVersion="124226"/><bookViews><workbookView xWindow="96" yWindow="72" window window/></bookViews><sheets><sheet name="Sheet1" sheetId="1" r:id="rId1"/>
<sheet name="Sheet2" sheetId="2" r:id="rId2"/>
<sheet name="Sheet3" sheetId="3" r:id="rId3"/>
</sheets>
<calcPr calcId="124519"/></workbook>
workbook.xml文件包含一对<sheets>标签,其中的每个<sheet>元素都代表Excel 2007文件中的一个,工作表的名称就是其name属性的值,这里有三个sheet。
3.2 shareStrings.xml文件内容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="3" uniqueCount="3">
<si><t>B2单元格</t><phoneticPr fontId="1" type="noConversion"/></si>
<si><t>B3单元格</t></si>
<si><t>B4单元格</t></si></sst>
在工作簿中,各工作簿使用的字符串统一存放在以上文件中,每组字符串使用元素<si>表示,其排列顺序就是其序号,表示工作表数据的XML文件用该序号来引用字符串。
3.3 样式文件style.xml是当前单元格的样式字体,颜色等样式的xml配置。
3.4 Theme存放的是当前的设置导航栏的默认样式。
3.5 xl\_rels\workbook.xml.rels文件的内容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet3.xml"/>
<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet2.xml"/>
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/>
<Relationship Id="rId6" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Target="sharedStrings.xml"/><Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>
<Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/></Relationships>
定义每个sheetid对应的sheet内容文件sheet1.xml。
3.6 xl\worksheets文件夹:
文件sheet1.xml文件的内容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><dimension ref="B2:C4"/><sheetViews><sheetView tabSelected="1" workbookViewId="0"><selection activeCell="C5" sqref="C5"/></sheetView></sheetViews><sheetFormatPr defaultRow/>
<sheetData> '工作表数据
<row r="2" spans="2:3"><c r="B2" t="s"><v>0</v></c><c r="C2"><v>32</v></c></row>
<row r="3" spans="2:3"><c r="B3" t="s"><v>1</v></c><c r="C3"><v>33</v></c></row>
<row r="4" spans="2:3"><c r="B4" t="s"><v>2</v></c><c r="C4"><v>34</v></c></row>
</sheetData>
<phoneticPr fontId="1" type="noConversion"/><pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/><drawing r:id="rId1"/></worksheet>
以上XML代码中,元素<c>表示该行中的一个单元格,对于单元格中的值,如果<c>元素有t属性的话,<c>元素的子元素<v>的值就是各工作表共享的字符串的索引,否则<v>元素的值就是该单元格的值。
3.7 图片保存在xl\media文件夹中:
4 功能区自定义
通过增加一个文件夹customUI,其中有customUI.xml的文件,内容如下:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
‘↓创建新选项卡
<tab id="tabJXC" label="进销存" >
<group id="gpIN" label="进货">
<button id="btIN_INPUT" imageMso="ReviewNextChange"
size="large" label="录入" onAction="btIN_INPUT_onAction"/>
<button id="btIN_REPROT" imageMso="RecordsMoreRecordsMenu"
size="large" label="报表" onAction="btIN_REPORT_onAction"/>
</group>
<group id="gpOUT" label="销售">
<button id="btOUT_INPUT" imageMso="ReviewPreviousChange"
size="large" label="录入" onAction="btOUT_INPUT_onAction"/>
<button id="btOUT_REPROT" imageMso="RecordsMoreRecordsMenu"
size="large" label="报表" onAction="btOUT_REPORT_onAction"/>
<button id="btOUT_RESULTS" imageMso="ControlLayoutStacked"
size="large" label="销售业绩" onAction="btOUT_RESULTS_onAction"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
在工作簿文件与xml文件之间建立关系:
在压缩文件的_rels文件夹内的.rles文件中添加以下内容(添加到最后一个Relationship标记前):
<Relationship Id="customUIRelID"
Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml"/>
功能区自定义具体操作细节可参考: