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.
Come si applica l'oggetto 'CellFormat' o l'oggetto' Allineamento' a una determinata cella? – Panzercrisis
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