2011-01-19 5 views
6

¿Cuál es la diferencia entre estos dos fragmentos Office Open XML?¿Cuál es la diferencia entre <c t="str"> y <c><is> en Office Open XML?

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

y

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

nota: La segunda muestra que he creado de forma manual basado en la especificación, el primero es de un libro de Excel real.

Ambos parecen válidas y más o menos idénticos de acuerdo con la especificación, por lo que me pregunto por qué hay t="str" cuando <is> hace parecer la misma cosa. ¿Cuándo elige Excel usar uno sobre el otro?

Respuesta

8

Según la documentación en 18.18.11 ST_CellType: Cell

str (String) que contiene un cadena fórmula.

Así que solo usaría su primer ejemplo si hubiera una fórmula en el elemento <x:v>.

El segundo se utiliza para cadenas en línea y el elemento <x:c> debe tener un atributo t de 'inlineStr'. Esto será solo texto enriquecido que se generará y no se almacenará en la tabla de cadenas compartidas.

Así que su primera sería válida la siguiente manera:

<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> 

Su segundo sería válida la siguiente manera:

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