В чем разница между <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>
Другие вопросы по тегам