2011-01-19 16 views
6

Sự khác biệt giữa hai đoạn Office Open XML này là gì?Sự khác nhau giữa <c t="str"> và <c><is> trong Office Open XML là gì?

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

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

lưu ý: Mẫu thứ hai tôi tạo ra bằng tay dựa trên spec, đầu tiên là từ một bảng tính Excel thực tế.

Cả hai dường như hợp lệ và khá giống hệt nhau theo thông số kỹ thuật, vì vậy tôi tự hỏi tại sao có t="str" khi <is> dường như không giống nhau. Khi nào Excel chọn sử dụng cái kia?

Trả lời

8

Theo tài liệu tại 18.18.11 ST_CellType:

str (String) di động có chứa một công thức chuỗi.

Vì vậy, bạn chỉ sử dụng ví dụ đầu tiên nếu công thức ở phần tử <x:v>.

Loại thứ hai được sử dụng cho các chuỗi nội tuyến và phần tử <x:c> phải có thuộc tính t'inlineStr'. Đây sẽ chỉ là văn bản phong phú sẽ được xuất ra và không được lưu trữ trong bảng chia sẻ.

Vì vậy, đầu tiên bạn sẽ có giá trị như thế này:

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

thứ hai của bạn sẽ có giá trị như thế này:

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