В чем разница междуи <c><is> в Office Open XML? - PullRequest
6 голосов
/ 19 января 2011

В чем разница между этими двумя фрагментами 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 Ответ

8 голосов
/ 19 января 2011

Согласно документации на 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>
...