EXCEL-XML代码相对行列转换绝对
这段时间因为工作的要求,需要在程序中处理xml 格式的excel 文档。但是在期间遇到了一个问题就是Row 和 Cell 的index 属性相对绝对的问题。
之前在bing 找了一下没找到介绍相对转换成绝对的资料。在经过多次的尝试和对比在空白的文档中不同的cell 中输入值后的XML文件的代码。
终于找到了,在什么情况下 Row 和Cell 的index属性的时显时隐的问题。
总结:
1.在空白的文档中第一次在一个单元格中输入值。如果是A行,那么Row 就没有index 属性,如果是1 列,那么Cell 就没有Index 属性。(如果不是第一次输入的话,有可能其他单元格就保存了之前的相对或者是绝对的index,就不一定了)
2.如果在第一次在文档中输入值,连续的输入有值的单元格总是以相对属性表示(即没有显示index属性),Row则是依赖最左边带有绝对Index属性的单元格,或者是第一行(A)。Cell 的也类似(方向向上)。
3.如果在文档中一个单元格设值并且与其相邻的单元格没有值,那这个单元格的Row Cell 的index都是绝对属性的(即显示有index="x")
如图,A1,A2,A3 Row Cell都是没有index 属性,因为A1 是第一行第一列,默认两个属性都是1,A2,A3 则是Row属性依赖A1,而他们是第一列默认也是没有Cell 的index 属性。 D5 相对来说独立它的Row Cell 的index属性都是绝对的。 其他的就不说了,直接给xml 代码更好理解。
xml 源码
1 <?xml version="1.0"?>
2 <?mso-application progid="Excel.Sheet"?>
3 <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
4 xmlns:o="urn:schemas-microsoft-com:office:office"
5 xmlns:x="urn:schemas-microsoft-com:office:excel"
6 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
7 xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet"
8 xmlns:html="http://www.w3.org/TR/REC-html40">
9 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
10 <Author>user</Author>
11 <LastAuthor>user</LastAuthor>
12 <Created>2008-10-27T07:49:59Z</Created>
13 <LastSaved>2008-10-27T08:20:37Z</LastSaved>
14 <Version>14.00</Version>
15 </DocumentProperties>
16 <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
17 <AllowPNG/>
18 </OfficeDocumentSettings>
19 <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
20 <WindowHeight>10005</WindowHeight>
21 <WindowWidth>10005</WindowWidth>
22 <WindowTopX>120</WindowTopX>
23 <WindowTopY>135</WindowTopY>
24 <ProtectStructure>False</ProtectStructure>
25 <ProtectWindows>False</ProtectWindows>
26 </ExcelWorkbook>
27 <Styles>
28 <Style ss:ID="Default" ss:Name="Normal">
29 <Alignment ss:Vertical="Center"/>
30 <Borders/>
31 <Font ss:FontName="宋体" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
32 <Interior/>
33 <NumberFormat/>
34 <Protection/>
35 </Style>
36 <Style ss:ID="s62">
37 <Alignment ss:Vertical="Bottom"/>
38 <Borders/>
39 <Font ss:FontName="Arial" x:Family="Swiss"/>
40 <Interior/>
41 <NumberFormat/>
42 <Protection/>
43 </Style>
44 </Styles>
45 <Worksheet ss:Name="Sheet1">
46 <Table ss:ExpandedColumnCount="11" ss:ExpandedRowCount="5" x:FullColumns="1"
47 x:FullRows="1" ss:StyleID="s62" ss:DefaultColumnWidth="54">
48 <Column ss:Index="2" ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="42.75"/>
49 <Column ss:Index="9" ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="65.25"/>
50 <Column ss:Index="11" ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="51.75"/>
51 <Row ss:AutoFitHeight="0" ss:Height="13.5">
52 <Cell><Data ss:Type="String">A1</Data></Cell>
53 </Row>
54 <Row ss:AutoFitHeight="0" ss:Height="13.5">
55 <Cell><Data ss:Type="String">A2</Data></Cell>
56 <Cell><Data ss:Type="String">B2</Data></Cell>
57 <Cell><Data ss:Type="String">C2</Data></Cell>
58 <Cell ss:Index="5"><Data ss:Type="String">E2</Data></Cell>
59 </Row>
60 <Row ss:AutoFitHeight="0" ss:Height="13.5">
61 <Cell><Data ss:Type="String">A3</Data></Cell>
62 </Row>
63 <Row ss:Index="5">
64 <Cell ss:Index="4"><Data ss:Type="String">D5</Data></Cell>
65 </Row>
66 </Table>
67 <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
68 <Selected/>
69 <Panes>
70 <Pane>
71 <Number>3</Number>
72 <ActiveRow>4</ActiveRow>
73 <ActiveCol>3</ActiveCol>
74 </Pane>
75 </Panes>
76 <ProtectObjects>False</ProtectObjects>
77 <ProtectScenarios>False</ProtectScenarios>
78 <x:ViewableRange>R1:R262144</x:ViewableRange>
79 <x:Selection>R10C6</x:Selection>
80 </WorksheetOptions>
81 <c:WorksheetOptions/>
82 </Worksheet>
83 <Worksheet ss:Name="Sheet2">
84 <Table ss:ExpandedColumnCount="1" ss:ExpandedRowCount="1" x:FullColumns="1"
&
补充:Web开发 , 其他 ,