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

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

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top