【セル型】 連続した半角スペースが 1文字分のスペースに置換される。

文書番号 : 21843     文書種別 : 使用方法     最終更新日 : 2006/06/23
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
詳細
■方法1
半角スペースをエンコードし、「 」と出力することで連続したスペースを表示できます。
下記は既存のテキスト型セルにこの処理を追加したカスタムセル型クラスです。
このセル型を適用することで連続したスペースを表示することができます。

 メモメモ
  • 既存クラスの継承は.NETアプリケーション開発における一般的な手法です。継承方法の詳細についてはMSDNライブラリをご参照ください。(既存クラスのカスタマイズ方法については弊社サポートサービス対象外となります)

◎サンプルコード(VB)
-----------------------
Webフォームクラス
-----------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  If Page.IsPostBack Then
    Return
  End If

  FpSpread1.ActiveSheetView.Columns(0).CellType = New MyTextType
  Dim data As String = "a b   c"
  FpSpread1.ActiveSheetView.Cells(0, 0).Value = data
  FpSpread1.ActiveSheetView.Cells(0, 1).Value = data
End Sub

-----------------------
カスタムテキスト型セル
-----------------------
Imports FarPoint.Web.Spread

<Serializable()> Public Class MyTextType
  Inherits TextCellType

  Public Overrides Function PaintCell(ByVal id As String, ByVal parent As System.Web.UI.WebControls.TableCell, ByVal style As FarPoint.Web.Spread.Appearance, ByVal margin As FarPoint.Web.Spread.Inset, ByVal value As Object, ByVal upperLevel As Boolean) As System.Web.UI.Control
    If Not (value Is Nothing) Then
      value = CStr(value).Replace(" ", "&nbsp;")
    End If
    Return MyBase.PaintCell(id, parent, style, margin, value, upperLevel)
  End Function
End Class


◎サンプルコード(C#)
-----------------------
Webフォームクラス
-----------------------
protected void Page_Load(object sender, EventArgs e)
{
  if (Page.IsPostBack)
  {
    return;
  }

  FpSpread1.ActiveSheetView.Columns[0].CellType = new MyTextType();
  string data = "a b   c";
  FpSpread1.ActiveSheetView.Cells[0, 0].Value = data;
  FpSpread1.ActiveSheetView.Cells[0, 1].Value = data;
}

-----------------------
カスタムテキスト型セル
-----------------------
using FarPoint.Web.Spread;

[Serializable()]
public class MyTextType : TextCellType
{
  public override Control PaintCell(string id, TableCell parent, Appearance style, Inset margin, object value, bool upperLevel)
  {
    if (value != null)
      value=Convert.ToString(value).Replace(" ","&nbsp;");
    return base.PaintCell(id, parent, style, margin, value, upperLevel);
  }
}

■方法2
テキスト型セルのAllowWrap プロパティを False に設定します。

◎サンプルコード(VB)
-----------------------
Webフォームクラス
-----------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  If Page.IsPostBack Then
    Return
  End If

  Dim tc As New FarPoint.Web.Spread.TextCellType
  tc.AllowWrap = False
  FpSpread1.ActiveSheetView.Columns(0).CellType = tc

  Dim data As String = "a b   c"
  FpSpread1.ActiveSheetView.Cells(0, 0).Value = data
  FpSpread1.ActiveSheetView.Cells(0, 1).Value = data
End Sub


◎サンプルコード(C#)
-----------------------
Webフォームクラス
-----------------------
protected void Page_Load(object sender, EventArgs e)
{
  if (Page.IsPostBack)
  {
    return;
  }

  FarPoint.Web.Spread.TextCellType tc = new FarPoint.Web.Spread.TextCellType();
  tc.AllowWrap = False;
  FpSpread1.ActiveSheetView.Columns[0].CellType = tc;

  string data = "a b   c";
  FpSpread1.ActiveSheetView.Cells[0, 0].Value = data;
  FpSpread1.ActiveSheetView.Cells[0, 1].Value = data;
}
キーワード
セル型

この文書は、以前は次のFAQ IDで公開されていました : 9167