2009-04-08 12 views
5

im obecnie za pomocą czegoś takiego wstawić inline ciąg w komórce:Jak wstawić podział wiersza w komórce arkusza kalkulacyjnego OPENXML?

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

Ale \n nie działa wstawić podział wiersza, w jaki sposób mogę to zrobić?

Dzięki


Odpowiedź

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

Odpowiedz

4

Spróbuj CellValues.String zamiast CellValues.InlineString.

8

trzeba zrobić dwie rzeczy:

1.) oznaczyć komórkowych jako "zapakowane Tekst". Możesz to zrobić w arkuszu kalkulacyjnym ręcznie, jeśli używasz istniejącego arkusza kalkulacyjnego jako szablonu. Wystarczy kliknąć komórkę prawym przyciskiem myszy i wybrać "Format komórki.", kliknąć zakładkę "Wyrównanie" i zaznaczyć pole wyboru "Zawijanie tekstu".
LUB ... Program CellFormat można ustawić programowo. Jeśli masz obiekt CellFormat nazwie „cf”, by zrobić coś takiego:

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.) nie należy używać „\ n”, zamiast tego należy się za pomocą standardowa karetka-powrót + kombinacja podawania linii: "\ r \ n"
Jeśli mieszamy dwa (tj. "\ n" bez poprzedzających "\ r" i "\ r \ n"), powinno to naprawić przed wypełnieniem wartości komórki:

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

Ja sam nie używam CellValues.String ani nawet CellValues.InlineString.
Zamiast tego buduję moje komórki tekstowe przy użyciu CellValues.SharedString (podobnie jak Excel).
Dla Bool używam "CellValues.Boolean", a dla wszystkich innych (numerycznych i dat) nie ustawiam komórki DataType na nic - ponieważ to właśnie robi Excel, gdy patrzę na znaczniki, które on tworzy.

+0

Jak zastosować obiekt 'CellFormat' lub obiekt' Wyrównanie' do danej komórki? – Panzercrisis

+0

To nie działa dla mnie. Właśnie dostaję błąd na linii z \ r \ n, a Excel nie otworzy arkusza z tekstem mówiącym, że jest uszkodzony – johnstaveley