Como inserir quebra de linha dentro da célula planilha OPENXML?
-
06-09-2019 - |
Pergunta
Atualmente estou usando algo parecido com isso para inserir seqüência de linha em uma célula:
new Cell()
{
CellReference = "E2",
StyleIndex = (UInt32Value)4U,
DataType = CellValues.InlineString,
InlineString = new InlineString(new Text( "some text"))
}
Mas \n
não trabalho para quebra de linha de inserção, como posso fazer isso?
A resposta ??p>
new Cell(
new CellValue("string \n string")
)
{
CellReference = "E2",
StyleIndex = (UInt32Value)4U,
DataType = CellValues.String
}
Solução
Tente CellValues.String vez de CellValues.InlineString.
Outras dicas
Você precisa fazer duas coisas:
1.) Mark célula como "Texto esticadas". Você pode fazer isso na planilha à mão se você estiver usando uma planilha existente como modelo. Basta clicar com o botão direito sobre a célula (s) e selecione " Format Cells .. ", clique em " Alinhamento " guia e verifique o " Ajustar texto " caixa de seleção.
OU ... Você pode definir o cellFormat programaticamente. Se você tem um objeto cellFormat chamado " cf ", você faria algo assim:
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) Você não deve usar "\ n", em vez disso você deve estar usando o + combinação de avanço de linha de retorno de carro padrão: "\ r \ n"
Se você está misturando os dois (ou seja, "\ n" sem precedente "\ r" e "\ r \ n"), este deve corrigi-lo antes de preencher o valor da célula:
sHeaderText = sHeaderText.Replace("\r\n", "\n").Replace("\n", "\r\n");
Eu, pessoalmente, não use CellValues.String ou mesmo CellValues.InlineString .
Em vez disso eu construir minhas células de texto usando CellValues.SharedString (como Excel faz). Compra de Bool eu uso " CellValues.Boolean ", e para todos os outros (numerics e datas) eu não definir a célula DataType para qualquer coisa -. porque é isso que Excel faz quando eu olhar para a marcação cria