リッチテキストフォーマット

リッチテキストフォーマット(略・リッチテキスト)の表示は以下のクラスを利用します。

unvell.ReoGrid.Drawing.RichText

RichText 型のインスタンスをセルまたはFloating Objectに格納することができます。

セルの中でリッチテキストを表示する

308

上記サンプルのソースコードは以下の通りです。

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プロパティを設定し、テキストを自動的に改行するように設定します。

例:改行しない場合 311

例:改行する場合 312

改行設定のソースコードは以下の通りです。

sheet.Cells["B2"].Style.TextWrap = TextWrapMode.WordBreak;

テキストのアラインメント設定

リッチテキストの表示位置を自由に設定できます。例えばすべての文字を上下中央に配置します。 313

ソースコードは以下の通りです。

sheet.Cells["B2"].Style.VAlign = ReoGridVerAlign.Middle;

または右寄せに設定します。 314

sheet.Cells["B2"].Style.HAlign = ReoGridHorAlign.Right;

プログラムでリッチテキストを作成

最初のテキスト

309

リッチテキストのインスタンスの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

310

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メソッドを利用します。 315

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メソッドを呼び出す位置で段落を分割できます。 316

段落と段落の間のスペースを調整できます。また、段落の中のテキストの高さも設定できます。 317

SetStylesメソッドを利用して、その段落のスタイルを設定できます。スタイルの一つが段落と段落のスペースです。 318

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」を一つの段落として、右寄せに設定しています。 319

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ではそれぞれの段落に対してアラインメントの設定はできません。ReoGridでこのような設定をExcelに出力すると設定がなくなります。

上付き文字と添字

テキストを上付き文字に設定したい場合、Superscriptメソッドを利用してテキストを追加します。Subscriptを利用すると添字の追加ができます。 320

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は段落と行のスペースや高さの設定に対応していないため、それらの情報はなくなります。

321


ページの内容は役に立ちましたか?