Frage

Ich bin derzeit so etwas wie diese Inline-String in einer Zelle einzufügen:

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

Aber \n nicht funktioniert Zeilenumbruch eingefügt werden, wie kann ich das tun?


Die Antwort

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

Lösung

Versuchen Sie statt CellValues.InlineString CellValues.String.

Andere Tipps

Sie müssen zwei Dinge tun:

1.) Markieren Sie die Zelle als "Wrapped Text". Sie können dies mit der Hand in der Tabelle tun, wenn Sie eine vorhandene Tabelle als Vorlage verwenden. Einfach mit der rechten Maustaste auf die Zelle (n) und wählen Sie " Zellen formatieren .. ", klicken Sie auf den " Ausrichtung " und prüfen Sie das „ Wrap Text “Checkbox.
ODER ... Sie können die CellFormat programmatisch festgelegt. Wenn Sie ein CellFormat Objekt namens " cf ", würden Sie so etwas tun:

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) Sie sollten nicht "\ n" verwenden, stattdessen sollten Sie die Standardwagenrücklauf + Zeilenvorschub-Kombination werden: "\ r \ n"
Wenn Sie mischen die beiden (das heißt „\ n“ ohne die vorhergehenden „\ r“ und „\ r \ n“), sollte dies beheben, bevor Sie den Zellenwert bevölkern:

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

Ich selbst nicht verwenden CellValues.String oder auch CellValues.InlineString .
Stattdessen baue ich meine Textzellen mit CellValues.SharedString (wie Excel der Fall ist).
Für Bool Ich benutze " CellValues.Boolean ", und für alle anderen (Numerik und Termine) ich habe nicht die Zelle Datatype zu etwas -. denn das ist, was Excel tut, wenn ich im Markup aussehen es schafft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top