Come inserire un'interruzione di riga all'interno di OPENXML cella del foglio di calcolo?
-
06-09-2019 - |
Domanda
Attualmente sto usando qualcosa di simile, inserisci in linea stringa in una cella :
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?
La risposta
new Cell(
new CellValue("string \n string")
)
{
CellReference = "E2",
StyleIndex = (UInt32Value)4U,
DataType = CellValues.String
}
Soluzione
Provare CellValues.Stringa invece di CellValues.InlineString.
Altri suggerimenti
Hai bisogno di fare due cose:
1.) Marco cella come "ritorno a capo del Testo".Si può fare questo in un foglio di calcolo a mano se si utilizza un foglio di lavoro esistente come modello.Basta fare clic destro sulla cella e selezionare "Formato Celle.."fare clic su "Allineamento"scheda e verificare l' "Testo A Capo"casella di controllo.
O... È possibile impostare il CellFormat a livello di programmazione.Se si dispone di un CellFormat oggetto chiamato "cf ", si potrebbe fare qualcosa di simile a questo:
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.) Non si deve usare "
", invece si dovrebbe essere utilizzando lo standard carriage return + line feed combinazione:"
"
Se si sta mescolando le due (es."
" senza precedenti "
" e "
"), questo dovrebbe risolvere il problema prima di inserire il valore della cella:
sHeaderText = sHeaderText.Replace("\r\n", "\n").Replace("\n", "\r\n");
Io, me stesso, non utilizzare CellValues.String o anche CellValues.InlineString.
Invece di costruire il mio testo utilizzando cellule CellValues.SharedString (come Excel).
Per Bool io uso "CellValues.Boolean"e per tutti gli altri (numeri e date) non ho il cell Tipo di dati per nulla, perché questo è ciò che Excel fa quando guardo il codice che crea.