Office Open XML中<c t =“str”>和<c> <is>之间有什么区别?</is> </c> </c>

时间:2011-01-19 20:10:08

标签: excel openxml openxml-sdk xlsx spreadsheetml

这两个Office Open XML片段之间有什么区别?

<c r="A2" t="str">
  <v>btyler</v>
</c>

<c r="B2">
  <is><t>btyler</t></is>
</c>    

注意:我根据规范手动创建的第二个示例,第一个是来自实际的Excel工作簿。

根据规范,两者看起来都是有效的,几乎完全相同,所以我想知道为什么t="str" <is>似乎做同样的事情。 Excel何时选择使用其中一个?

1 个答案:

答案 0 :(得分:8)

根据18.18.11 ST_CellType的文件:

  

str(String)包含公式的单元格   字符串。

因此,如果公式位于<x:v>元素中,您只会使用第一个示例。

第二个用于内嵌字符串,<x:c>元素的t属性应为'inlineStr'。这只是将输出的富文本,而不是存储在sharedstring表中。

所以你的第一个会像这样有效:

<x:c r="C6" s="1" vm="15" t="str">
   <x:f>CUBEVALUE("xlextdat9 Adventure Works",C$5,$A6)</x:f>
   <x:v>2838512.355</x:v>
</x:c>

你的第二个有效:

<x:c r="B2" t="inlineStr">
   <is><t>btyler</t></is>
</c>