24

Aspose ライブラリを使用して Excel ドキュメントを作成しています。あるセルのどこかに、テキストの 2 つの部分の間に新しい行を挿入する必要があります。

「\r\n」を試してみましたが、うまくいきません。セルに 2 つの四角形の記号が表示されるだけです。ただし、Alt+Enter を押して、同じセルに新しい行を作成できます。

プログラムで新しい行を挿入するにはどうすればよいですか?

4

13 に答える 13

31

Aspose Cells フォーラムから: How to use new line char with in a cell?

テキストを入力したら、セルの IsTextWrapped スタイルを true に設定する必要があります

worksheet.Cells[0, 0].Style.WrapText = true;
于 2009-07-24T13:48:08.750 に答える
9
cell.Text = "your firstline<br style=\"mso-data-placement:same-cell;\">your secondline";

DB からテキストを取得している場合:

cell.Text = textfromDB.Replace("\n", "<br style=\"mso-data-placement:same-cell;\">");
于 2011-01-14T22:31:26.280 に答える
5

Excel が使用する文字コード (IIRC は 10) を挿入する必要があります。


編集:OK、ここにいくつかのコードがあります。以下を含むセルを作成することにより、使用されている文字コードが実際に 10 であることを確認できたことに注意してください。

B

...そしてそれを選択し、VBA のイミディエイト ウィンドウでこれを実行します。

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

したがって、その値を VBA の別のセルに挿入するために必要なコードは次のようになります。

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

(vbLf は文字コード 10 であるため)。

あなたが C# を使用していることは知っていますが、最初に VBA を使用すると、何もコンパイルせずに「対話的に」試すことができるため、何をすべきかを理解するのがはるかに簡単になります。C# で行うことは、VBA で行うことを複製しているだけなので、違いはほとんどありません。(C# 相互運用機能は、VBA と同じ基礎となる COM ライブラリを使用しているだけであることを思い出してください)。

とにかく、これの C# は次のようになります。

oCell.Value = "A\nB";

違いを見つけてください:-)


編集2:ああああ!投稿を読み直したところ、Aspose ライブラリを使用していることがわかりました。申し訳ありませんが、その場合はわかりません。

于 2009-07-24T09:18:37.613 に答える
3

\r\n内部的に、Excel は、少なくとも XML 表現では、改行にU+000D U+000A (CR+LF, ) を使用します。また、セル内で値を直接見つけることもできませんでした。共有文字列を含む別の XML ファイルに移行されました。改行を含むセルはファイル形式によって異なる方法で処理され、ライブラリはこれを認識していない可能性があります。

于 2009-07-24T09:38:20.820 に答える
2

Infragistics ソリューションに興味がある方は、こちらをご覧ください。

  1. 使用する

    Environment.NewLine

  2. セルがラップされていることを確認してください

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

于 2012-10-01T12:37:25.480 に答える
1

SpreadsheetGear for .NETは次のようにします。

        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);

「WrapText = true」に注意してください。Excel は、これがないとテキストを折り返しません。Aspose にも同様の API があると思います。

免責事項: 私は SpreadsheetGear LLC を所有しています

于 2009-07-24T13:35:10.560 に答える
0

PEAR 'Spreadsheet_Excel_Writer' と 'OLE' の使用:

" " を機能させる唯一の方法は\n、セルを作成してから$format->setTextWrap(); " " を使用\nすることでした。

于 2011-03-11T15:56:53.430 に答える
0

Chr(13) を使用できます。次に、全体を Chr(34) でラップします。Chr(34) は二重引用符です。

  • VB.Net の例:
  • TheContactInfo = ""
  • TheContactInfo = Trim(TheEmail) & chr(13)
  • TheContactInfo = TheContactInfo & Trim(ThePhone) & chr(13)
  • TheContactInfo = Chr(34) & TheContactInfo & Chr(34)
于 2013-08-30T14:01:20.977 に答える
0

「\n」は問題なく動作します。入力が複数行のテキストボックスからのものである場合、改行文字は「\r\n」になります。これを「\n」に置き換えると機能します。

于 2009-09-17T13:27:10.047 に答える
-1

実際、それは本当に簡単です。

xml バージョンの Excel を編集できます。セルを編集してテキスト間に新しい行を追加し、保存します。後でエディターでファイルを開くと、新しい行が次のように表示されます。 &#10;

試してみてください....

于 2011-06-22T17:34:23.090 に答える