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.
Jak zastosować obiekt 'CellFormat' lub obiekt' Wyrównanie' do danej komórki? – Panzercrisis
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