リッチテキストフォーマットの表示は以下のクラスを利用します。
unvell.ReoGrid.Drawing.RichText
RichText型のインスタンスをセルまたはFloating Objectに格納するとリッチテキストを描画できます。
セルの中でリッチフォーマットのテキストを表示する
上記サンプルのソースコードは以下の通りです。
var sheet = grid.CurrentWorksheet; sheet.MergeRange("B2:F6"); sheet["B2"] = new Drawing.RichText() .Regular("The ") .Bold("Rich Text Format") .Regular(" (often abbreviated ") .Bold("RTF") .Regular(") is a proprietary") .Superscript("[6][7][8]") .Regular(" document file format with published specification developed by Microsoft Corporation from ") .Span("1987", textColor: Color.OrangeRed) .Span(" until ", textColor: Color.Black) .Span("2008", textColor: Color.OrangeRed) .Span(" for cross-platform document interchange with Microsoft products.", textColor: Color.Black);
セルテキストの改行設定
デフォルトでは、セル内のテキストは自動的に改行しません。セルのスタイルオブジェクトのTextWrapプロパティを設定し、テキストを自動的に改行するように設定します。
例:改行しない場合
例:改行する場合
改行設定のソースコードは以下の通りです。
sheet.Cells["B2"].Style.TextWrap = TextWrapMode.WordBreak;
sheet["B2"] = new Drawing.RichText() .Span("The Apple II (styled as apple ][) is an 8-bit home computer, one of the first highly successful mass-produced microcomputer products,[2] designed primarily by Steve Wozniak.");
テキストのアラインメント設定
リッチテキストの表示位置を自由に設定できます。例えばすべての文字を上下中央に配置します。
ソースコードは以下の通りです。
sheet.Cells["B2"].Style.VAlign = ReoGridVerAlign.Middle;
または右寄せに設定します。
ソースコード:
sheet.Cells["B2"].Style.HAlign = ReoGridHorAlign.Right;
プログラムでリッチフォーマットのテキストを作成する
最初のテキスト
リッチテキストのインスタンスのSpanメソッドを利用してテキストを追加することができます。また、Spanメソッドにパラメータを渡すと、様々なスタイルも設定できます。
sheet["B2"] = new Drawing.RichText() .Span("The Apple II (styled as apple ][) is an 8-bit home computer.");
Spanメソッドの代わりに、Bold、Italic、Regularメソッドを利用すると、そのスタイルのテキストをより簡単に追加することができます。
Bold
サンプルソースコード:
sheet["B2"] = new Drawing.RichText() .Span("The ") .Bold("Apple II") .Regular(" (styled as apple ][) is an 8-bit home computer.");
Boldメソッドを利用して、「Apple II」を太字として追加します。Regularメソッドを利用して、元のスタイルでテキストを追加します。
同じ方法でItalic、Underline、Strikeoutスタイルのテキストも追加することができます。
段落を追加(改行)
テキストを新しい段落で追加したい場合、NewLineメソッドを利用します。
サンプルソースコード:
sheet["B2"] = new Drawing.RichText() .Span("The ") .Bold("Apple II") .Regular(" (styled as apple ][) is an 8-bit home computer.") .NewLine() .Span("One of the first highly successful mass-produced microcomputer products,[2] designed primarily by Steve Wozniak.");
Newlineメソッドを呼び出すと、その位置からテキストが改行されます。そのあとのテキストは全て新しい段落に追加されます。
段落のスペースと行の高さの設定
NewLineメソッドを呼び出す位置で段落を分割できます。
段落と段落の間のスペースを調整できます。また、段落の中のテキストの高さも設定できます。
SetStylesメソッドを利用して、その段落のスタイルを設定できます。スタイルの一つが段落と段落のスペースです。
サンプルソースコード:
sheet["B2"] = new Drawing.RichText() .SetStyles(paragraphSpacing: 3.0f) .Span("The ") .Bold("Apple II") .Regular(" (styled as apple ][) is an 8-bit home computer.") .NewLine() .SetStyles(lineHeight: 2.0f) .Span("One of the first highly successful mass-produced microcomputer products,[2] designed primarily by Steve Wozniak.");
この例ではSetStylesを呼び出す前に、NewLineメソッドを呼び出したため、二つ目の段落のスタイルを設定します。
Excelは段落のスペースと行の高さの調整には対応していません。これらの設定をExcelファイルにエクスポートすると情報がなくなります。
それぞれの段落に対してアラインメントを設定
ReoGridのリッチテキストは、それぞれの段落に対して左寄せ、右寄せの設定ができます。例えば以下の例では、一番下の「- wikipedia.org」を一つの段落として、右寄せに設定しています。
ソースコード:
sheet["B2"] = new Drawing.RichText() .Span("The ") .Bold("Apple II") .Regular(" (styled as apple ][) is an 8-bit home computer.") .NewLine() .Span("One of the first highly successful mass-produced microcomputer products,[2] designed primarily by Steve Wozniak.") .NewLine() .SetStyles(halign: ReoGridHorAlign.Right) .Span("- wikipedia.org");
Excelではそれぞれの段落に対してアラインメントの設定はできません。
上付き文字と添字
テキストを上付き文字に設定したい場合、Superscriptメソッドを利用してテキストを追加します。Subscriptを利用すると添字の追加ができます。
サンプルソースコード:
sheet["B2"] = new Drawing.RichText() .Span("The ") .Bold("Apple II") .Regular(" (styled as apple ][) is an 8-bit home computer.") .NewLine() .Span("One of the first highly successful mass-produced microcomputer products,") .Superscript("[2]") .Regular(" designed primarily by Steve Wozniak.") .NewLine() .SetStyles(halign: ReoGridHorAlign.Right) .Span("- wikipedia.org");
SuperscriptとSubscriptを呼び出した後、Regularメソッドを利用してテキストを元のスタイルに戻せます。
画面描画オブジェクトでリッチテキストを表示する
画面描画のオブジェクトでリッチテキストを表示したい場合、作成したリッチテキストのインスタンスをオブジェクトの中に設定します。リッチテキストの作成方法は、セルのリッチテキストと同様です。
Excelのインポートとエクスポート
ReoGridではリッチテキストをExcelに出力、またはExcelから読み込みすることに対応しています。リッチテキストを含んだWorkbookをExcelフォーマットで出力する場合、リッチテキストが自動的に出力されます。ただし、Excelは段落と行のスペースや高さの設定に対応していないため、それらの情報はなくなります。