Office Open XML中的<ct =“str”>和<c> <is>有什么区别?

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

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

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

注意:我基于规范手动创build的第二个示例,第一个示例来自实际的Excel工作簿。

根据规范,两者似乎都是有效的,几乎完全相同,所以我想知道为什么当t="str"时候貌似也是一样的。 Excel何时select使用另一种?

根据18.18.11 ST_CellType的文档:

str(string)包含公式string的单元格。

因此,如果公式在<x:v>元素中,则只能使用第一个示例。

第二个用于内联string, <x:c>元素应该具有'inlineStr't属性。 这将只是将被输出的富文本,而不是存储在共享string表中。

所以你的第一个是这样的:

 <x:cr="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:cr="B2" t="inlineStr"> <is><t>btyler</t></is> </c>