В чем разница между <ct = "str"> и <c><is> в Office Open XML?
В чем разница между этими двумя фрагментами 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 ответ
Согласно документации на 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>