2011-06-24 14 views
15

Sto cercando di scrivere del codice per generare un foglio di calcolo Excel e non sono sicuro di quale sia la differenza tra CellValues.InlineString e CellValues.String per inserire testo nelle celle.Qual è la differenza tra CellValues.InlineString e CellValues.String in OpenXML?

devo usare questo:

private void UpdateCellTextValue(Cell cell,string cellValue) 
{ 
    InlineString inlineString = new InlineString(); 
    Text cellValueText = new Text { Text = cellValue }; 
    inlineString.AppendChild(cellValueText); 

    cell.DataType = CellValues.InlineString; 
    cell.AppendChild(inlineString); 
} 

questo

private void UpdateCellTextValue(Cell cell, string cellValue) 
{ 
    cell.CellValue = new CellValue(cellValue); 
    cell.DataType = new EnumValue<CellValues>(CellValues.String); 
} 

o solo questo (InsertSharedStringItem restituisce l'ID della voce di stringa condiviso appena inserito)

private void SetCellSharedTextValue(Cell cell,string cellValue) 
{   
    int stringId = InsertSharedStringItem(cellValue); 
    cell.CellValue = new CellValue(stringId.ToString()); 
    cell.DataType = new EnumValue<CellValues>(CellValues.SharedString); 
} 

risposta

13

Secondo il documentazione a 18.18.11 ST_CellType:

str (stringa) Cella contenente una formula stringa.

Si desidera utilizzare solo CellValues.String quando si inserisce una formula nella cella. Ecco come l'XML dovrebbe apparire:

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

CellValues.InlineString deve essere utilizzato se non si desidera memorizzare la stringa nella SharedStringTable. Quindi tutto ciò che contrassegni come inlineString verrà considerato come testo RTF. Anche se nota che quando si utilizza CellValues.InlineString che il testo deve essere surounded da un elemento di testo e <is> tag:

<x:c r="B2" t="inlineStr"> 
    <is><t>test string</t></is> 
</c> 
+0

Si prega di dove si trova il link della documentazione che hai citato da? –

+1

Ho aggiornato la risposta con il link per scaricare il pdf per le specifiche xml aperte. Puoi effettuare una ricerca in questa pagina o fare riferimento a questo collegamento Microsoft per gli esempi http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.cell%28v=office.14%29.aspx – amurra

Problemi correlati