Pergunta

Eu estou usando a biblioteca Aspose para criar um documento Excel. Em algum lugar, de alguma célula eu preciso inserir uma nova linha entre duas partes do texto.

Eu tentei "\ r \ n", mas ele não funciona, apenas exibe dois símbolos quadrados no celular. No entanto, posso pressione Alt + Enter para criar uma nova linha na mesma célula.

Como faço para inserir uma nova linha de programação?

Foi útil?

Solução

A partir das células fóruns Aspose: Como usar nova linha de char com em uma célula?

Depois de fornecer texto que você deve definir o estilo IsTextWrapped da célula para true

worksheet.Cells[0, 0].Style.WrapText = true;

Outras dicas

cell.Text = "your firstline<br style=\"mso-data-placement:same-cell;\">your secondline";

Se você está recebendo o texto da DB, em seguida:

cell.Text = textfromDB.Replace("\n", "<br style=\"mso-data-placement:same-cell;\">");

Você precisa inserir o código de caractere que usa o Excel, que IIRC é de 10 (dez).


Editar : OK, aqui está um código. Note-se que eu era capaz de confirmar que o código de caracteres usado é de fato 10, através da criação de uma célula que contém:

A

B

... e, em seguida, selecionando-o e executar este na janela imediata do VBA:

?Asc(Mid(Activecell.Value,2,1))

Assim, o código é necessário inserir esse valor em outra célula no VBA seria:

ActiveCell.Value = "A" & vbLf & "B"

(desde vbLf é código de caracteres 10).

Eu sei que você está usando C #, mas acho que é de muito mais fácil de descobrir o que fazer se você primeiro fazê-lo em VBA, desde que você pode experimentá-lo "interativa", sem ter que compilação qualquer coisa. Faça o que fizer em C # é apenas replicando o que você faz no VBA tão raramente há qualquer diferença. (Lembre-se que o C # interoperabilidade material está apenas usando as mesmas bibliotecas COM subjacentes como VBA).

De qualquer forma, o C # para isso seria:

oCell.Value = "A\nB";

ponto a diferença: -)


EDIT 2 : Aaaargh! Eu apenas re-ler o post e vi que você está usando a biblioteca de Aspose. Desculpe, nesse caso, eu não tenho nenhuma idéia.

Internamente Excel usa U + 000D U + 000A (CR + LF, \r\n) para uma quebra de linha, pelo menos em sua representação XML. Eu também não conseguia encontrar o valor diretamente em uma célula. Ele foi migrado para um outro arquivo XML contendo as cadeias compartilhadas. Talvez células que contêm quebras de linha são tratadas de forma diferente pelo formato de arquivo e sua biblioteca não sabe sobre isso.

SpreadsheetGear for .NET faz desta maneira:

        IWorkbook workbook = Factory.GetWorkbook();
        IRange a1 = workbook.Worksheets[0].Cells["A1"];
        a1.Value = "Hello\r\nWorld!";
        a1.WrapText = true;
        workbook.SaveAs(@"c:\HelloWorld.xlsx", FileFormat.OpenXMLWorkbook);

Observe o "wrapText = true" - Excel não vai quebrar o texto sem esta. Eu diria que Aspose tem APIs semelhantes.

Disclaimer: eu próprio SpreadsheetGear LLC

Se alguém estiver interessado na solução Infragistics, aqui está.

  1. Use

    Environment.NewLine

  2. Verifique se o seu celular é envolto

    dataSheet.Rows[i].Cells[j].CellFormat.WrapText = ExcelDefaultableBoolean.True;

"\ n" fino funciona. Se a entrada é proveniente de uma caixa de texto multi-linha, os novos caracteres de linha será "\ r \ n", se este é substituído por "\ n", ele vai trabalhar.

Usando PERA 'Spreadsheet_Excel_Writer' e 'OLE':

A única maneira que eu poderia obter "\n" ao trabalho foi fazer a $format->setTextWrap(); celular e, em seguida, usando "\n" iria funcionar.

Você pode usar Chr (13). Em seguida, basta embrulhar a coisa toda em Chr (34). Chr (34) é aspas duplas.

  • VB.Net Exemplo:
  • TheContactInfo = ""
  • TheContactInfo = Trim (TheEmail) & chr (13)
  • TheContactInfo = TheContactInfo & Trim (ThePhone) & chr (13)
  • TheContactInfo = Chr (34) & TheContactInfo & Chr (34)

O que funcionou para mim:

worksheet.Cells[0, 0].Style.WrapText = true;
worksheet.Cells[0, 0].Value = yourStringValue.Replace("\\r\\n", "\r\n");

Meu problema era que o \ r \ n veio escapou.

Na verdade, é muito simples.

Você pode editar uma versão xml do Excel. Editar uma célula para dar-lhe nova linha entre seu texto, em seguida, salvá-lo. Mais tarde você pode abrir o arquivo no editor, em seguida, você verá uma nova linha é representada por &#10;

Tenha uma tentativa ....

Você já tentou "\ n" Eu acho que, ele deve funcionar.

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