セルにデータを入れる処理
テーブルができたら、各セルにテキストデータを入れていきます。StreamReaderクラスを使ってテキストファイルから1行ずつ読み込み、左の列のセルから順番に行を変えながら挿入していきます。
まず、RenderTextオブジェクトを作成します。そして、ファイルからデータを1行読み込んでこのオブジェクトのTextプロパティに代入します。Cellsプロパティの引数に行列番号を指定し、RenderObjectプロパティにRenderTextオブジェクトを代入します。これで、指定したセルにテキストデータを持ったRenderTextオブジェクトが設定されます。あとは、セルの位置を移動させながら、RenderTextオブジェクトを設定していきます。
'セルにデータを入れる fname = Application.StartupPath & "\sample_data.txt" Try Dim sr As StreamReader = New StreamReader(fname, System.Text.Encoding.Default) For row = 0 To 10 For col = 0 To 2 Dim celltext As RenderText = New RenderText(Me.C1PrintDocument1) celltext.Text = sr.ReadLine() ' テキストを含むセルを追加 table1.Cells(row, col).RenderObject = celltext Next Next sr.Close() Catch ex As Exception MessageBox.Show(ex.Message) End Try
//セルにデータを入れる fname = Application.StartupPath + "/sample_data.txt"; try { StreamReader sr = new StreamReader(fname, System.Text.Encoding.Default); for(row=0; row<=10; row++) { for(col=0; col<=2; col++) { RenderText celltext = new RenderText(c1PrintDocument1); celltext.Text = sr.ReadLine(); // テキストを含むセルを追加します。 table1.Cells[row, col].RenderObject = celltext; } } sr.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); }
見出し行の装飾
最後に、見出しの行の文字色を変えます。見出しのセルを塗りつぶすには、Rowsプロパティで11行目全体のセルのスタイルを表すCellStyleオブジェクトを取得し、BackColorプロパティに色情報を設定します。セルの文字はRenderObjectプロパティでRenderTextオブジェクトを指定し、そのStyleオブジェクトを取得してTextColorプロパティに色情報を設定します。セルとセルの中にあるテキストは、それぞれ違うオブジェクトになっている点に注意してください。
作成したテーブルをBodyセクションに追加し、ドキュメントを生成してできあがりです。
table1.Rows(0).CellStyle.BackColor = Color.BlueViolet table1.Rows(0).Style.TextColor = Color.Beige ' テーブルをドキュメントに追加 Me.C1PrintDocument1.Body.Children.Add(table1) Me.C1PrintDocument1.Generate()
//見出しのセルを塗りつぶす table1.Rows[0].CellStyle.BackColor = Color.BlueViolet; table1.Rows[0].Style.TextColor = Color.Beige; // テーブルをドキュメントに追加 c1PrintDocument1.Body.Children.Add(table1); c1PrintDocument1.Generate();
まとめ
テーブルはデータを分かりやすく見せるための常套手段です。特に、日本人は表組が大好きなようで、ドキュメント作成には欠かせないものになっています。
C1PrintDocumentコントロールは、このように簡単にテーブルを作成できます。列幅や行の高さの設定、セルの塗りつぶし、文字色、罫線設定などを自在に行うことができるので、独自のスタイルの表をドキュメントに組み込むことができます。
また、GDI+を使ったグラフィックス描画機能を使うことができるため、例えば角度の付いた文字やグラデーションブラシによる塗りつぶしなど、ドキュメントをグラフィックスで装飾する操作も自在に行えます。
アプリケーションにドキュメント作成機能を組み込みたいという方はぜひ、C1PrintDocumentコントロールの導入を検討してみてはいかがでしょうか。