2009-04-08 17 views
5

im attualmente utilizzando qualcosa di simile per inserire stringa di linea in una cella:Come inserire un'interruzione di riga nella cella del foglio di calcolo OPENXML?

new Cell() 
{ 
    CellReference = "E2", 
    StyleIndex = (UInt32Value)4U, 
    DataType = CellValues.InlineString, 
    InlineString = new InlineString(new Text("some text")) 
} 

Ma \n non funziona per inserire un'interruzione di riga, come posso fare questo?

Grazie


La risposta

new Cell(
     new CellValue("string \n string") 
     ) 
    { 
     CellReference = "E2", 
     StyleIndex = (UInt32Value)4U, 
     DataType = CellValues.String   
    } 

risposta

4

Prova CellValues.String invece di CellValues.InlineString.

8

Hai bisogno di fare due cose:

1.) segnare i cellulari come "testo a capo". Puoi farlo manualmente nel foglio di calcolo se utilizzi un foglio di lavoro esistente come modello. Fai clic destro sulla cella (s) e seleziona "Formato celle ..", fare clic sulla scheda "Allineamento" e selezionare la casella "Wrap Text".
OR ... È possibile impostare CellFormat in modo programmatico. Se si dispone di un oggetto CellFormat chiamato "cf", si potrebbe fare qualcosa di simile:

cf.ApplyAlignment = true;//Set this so that Excel knows to use it. 
if (cf.Alignment == null)//If no pre-existing Alignment, then add it. 
    cf.Alignment = new Alignment() { WrapText = true }; 
Alignment a = cf.Alignment; 
if (a.WrapText == null || a.WrapText.Value == false) 
    a.WrapText = new BooleanValue(true);//Update pre-existing Alignment. 

2.) Si consiglia di non usare "\ n", invece si dovrebbe utilizzare la combinazione di ritorno a capo standard + avanzamento riga: "\ r \ n"
Se si stanno mescolando i due (cioè "\ n" senza la precedente "\ r" e "\ r \ n"), questo dovrebbe risolverlo prima di compilare il valore della cella:

sHeaderText = sHeaderText.Replace("\r\n", "\n").Replace("\n", "\r\n"); 

Io stesso, non utilizzare CellValues.String o anche CellValues.InlineString.
Invece io costruisco le mie celle di testo usando CellValues.SharedString (proprio come fa Excel).
Per Bool utilizzo "CellValues.Boolean" e per tutti gli altri (numeri e date) non imposto il valore DataType della cella - perché è ciò che Excel fa quando guardo il markup che crea.

+0

Come si applica l'oggetto 'CellFormat' o l'oggetto' Allineamento' a una determinata cella? – Panzercrisis

+0

Questo non funziona per me. Ho appena ricevuto un errore sulla linea con \ r \ n e Excel non aprirà il foglio con il testo che dice che è danneggiato – johnstaveley

Problemi correlati