PowerTools SPREAD for Windows Forms 10.0J
データに合わせたサイズ

セル内のデータの長さや幅に合わせて、列幅または行の高さをサイズ変更できます。 最長データを持つ行または列のサイズを、優先サイズと呼びます。

優先サイズを利用するメソッドは次のとおりです。

RowクラスのGetPreferredHeightメソッド、およびColumnクラスのGetPreferredWidthメソッドは、常にヘッダセルを含めます。 SheetViewクラスのオーバーロードされたGetPreferredColumnWidthメソッドには、常にヘッダセルを含めるオーバーロードと、ヘッダセルを含めるかどうかを選択できるオーバーロードがあります。 次のコードでは、width1およびwidth2にはヘッダセルが含まれますが、width3には含まれません。

C#
コードのコピー
float width1 = fpspread.Sheets[0].Columns[0].GetPreferredWidth();
float width2 = fpspread.Sheets[0].GetPreferredColumnWidth(0);
float width3 = fpspread.Sheets[0].GetPreferredColumnWidth(0, true);

データのサイズに合わせてセルのサイズを設定する方法については、「データに合わせたセルのサイズ」を参照してください。

ユーザーに行および列のサイズ変更を許可する方法については、「ユーザー操作によるリサイズ」を参照してください。

  • ヘッダセルのWordWrapはデフォルトでTrueになっています。ヘッダテキストの長さがセルテキストよりも長い場合、最大長(最も幅の広いテキストの幅)をヘッダテキストに合わせるためには、以下のようにWordWrapを無効にしておく必要があります。
    C#
    コードのコピー
    //全ての列ヘッダラベルのWordWrapを無効にします
    FarPoint.Win.Spread.CellType.ColumnHeaderRenderer ch = new FarPoint.Win.Spread.CellType.EnhancedColumnHeaderRenderer();
    ch.WordWrap = false;
    fpSpread1.ActiveSheet.ColumnHeader.DefaultStyle.Renderer = ch;
    
    Visual Basic
    コードのコピー
    '全ての列ヘッダラベルのWordWrapを無効にします
    Dim ch As New FarPoint.Win.Spread.CellType.EnhancedColumnHeaderRenderer
    ch.WordWrap = False
    FpSpread1.ActiveSheet.ColumnHeader.DefaultStyle.Renderer = ch
    
  • 列ヘッダ境界線ダブルクリックによって自動調整された列サイズ、またはGetPreferredColumnWidthメソッド呼び出しなどによって取得される優先サイズは、対象セルの設定フォント(フォント名、サイズ、スタイル)によってわずかに異なります。
  • リッチテキスト型セルの場合、自動サイズ調整を有効にしており、複数のフォントを使用している場合は、列幅が数ピクセル分ずれることがあります。また、使用しているフォント、サイズ、およびスタイル(太字、斜体、下線)などによっても自動調整された列幅はそれぞれ異なります。(GetPreferredColumnWidthメソッドにて取得されるテキスト幅もそれぞれ異なります。)
  • リッチテキスト型セルでのGetPreferredRowHeightメソッド呼び出しにて取得される行の高さは、使用しているフォント、サイズ、およびスタイル(太字、斜体、下線)によってそれぞれ異なります。また、WordWrapプロパティまたはMultilineプロパティをTrueに設定している場合、同一セル内に異なるフォント情報が混在している際には、必要な行の高さを取得できないことがありますので、この場合は微調整を行う必要があります。

サンプルコード

設定されたデータに合わせて、1行目の高さ、および1列目の幅を設定します。

C#
コードのコピー
' 2列目の幅を100に設定します。
FpSpread1.Sheets(0).Columns(1).Width = 100
FarPoint.Win.Spread.Row row;
FarPoint.Win.Spread.Column col;
float sizerow;
float sizercol;
row = fpSpread1.ActiveSheet.Rows[0];
col = fpSpread1.ActiveSheet.Columns[0];
fpSpread1.ActiveSheet.Cells[0, 0].Text = "This text is used to determine the height and width.";
sizerow = row.GetPreferredHeight();
sizecol = col.GetPreferredWidth();
row.Height = sizerow;
col.Width = sizecol;
Visual Basic
コードのコピー
Dim row As FarPoint.Win.Spread.Row
Dim col As FarPoint.Win.Spread.Column
Dim sizerow As Single
Dim sizecol As Single
row = FpSpread1.ActiveSheet.Rows(0)
col = FpSpread1.ActiveSheet.Columns(0)
FpSpread1.ActiveSheet.Cells(0, 0).Text = "This text is used to determine the height and width."
sizerow = row.GetPreferredHeight()
sizecol = col.GetPreferredWidth()
row.Height = sizerow
col.Width = sizecol
関連トピック

 

 


© 2004-2017, GrapeCity inc. All rights reserved.