Excel ファイルにエクスポートするとき、特定のセルのみ背景色(文字色)を設定したい

文書番号 : 24477     文書種別 : 使用方法     最終更新日 : 2007/08/02
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
詳細
以下のような設定を行った場合、エクスポートされたExcelファイルでは、行全体の背景色が設定されます。

 FpSpread1.ActiveSheetView.Rows(1).BackColor = Color.Blue

例えば、データがあるセルのみの背景色を設定したい場合などはセル単位で背景色の設定を行う必要があります。

【VB.NETサンプルコード】
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  If Page.IsPostBack Then
    Return
  End If
  
  Dim i As Integer
  Dim j As Integer
  
  ' 列ヘッダの背景色/文字色を設定します
  For i = 0 To FpSpread1.ActiveSheetView.ColumnCount - 1
    FpSpread1.ActiveSheetView.ColumnHeader.Cells(0, i).Value = "Column" + ChrW(65 + i)
    FpSpread1.ActiveSheetView.ColumnHeader.Cells(0, i).BackColor = Drawing.Color.DarkBlue
    FpSpread1.ActiveSheetView.ColumnHeader.Cells(0, i).ForeColor = Drawing.Color.White
  Next
  
  ' 行ヘッダの背景色/文字色を設定します
  For i = 0 To FpSpread1.ActiveSheetView.RowCount - 1
    FpSpread1.ActiveSheetView.RowHeader.Cells(i, 0).Value = "Row" + i.ToString()
    FpSpread1.ActiveSheetView.RowHeader.Cells(i, 0).BackColor = Drawing.Color.DarkBlue
    FpSpread1.ActiveSheetView.RowHeader.Cells(i, 0).ForeColor = Drawing.Color.White
  Next
  
  ' ヘッダのコーナーセルの背景色/文字色を設定します
  FpSpread1.ActiveSheetView.SheetCornerStyle.BackColor = Color.DarkBlue
  FpSpread1.ActiveSheetView.SheetCornerStyle.ForeColor = Drawing.Color.White
  
  ' 各セルの背景色/文字色を設定します
  For i = 0 To FpSpread1.ActiveSheetView.RowCount - 1
    For j = 0 To FpSpread1.ActiveSheetView.ColumnCount - 1
      FpSpread1.ActiveSheetView.Cells(i, j).Value = "R=" + i.ToString() + " C=" + j.ToString()
      FpSpread1.ActiveSheetView.Cells(i, j).BackColor = Color.Lavender
      FpSpread1.ActiveSheetView.Cells(i, j).ForeColor = Drawing.Color.Blue
    Next
  Next
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  FpSpread1.SaveExcel(Server.MapPath(Request.ApplicationPath + "¥test.xls"), FarPoint.Web.Spread.Model.IncludeHeaders.BothCustomOnly)
End Sub


【C#サンプルコード】
private void Page_Load(object sender, System.EventArgs e)
{
  if(Page.IsPostBack)
  {
    return;
  }
  
  int i;
  int j;
  
  // 列ヘッダの背景色/文字色を設定します
  for (i = 0; i < FpSpread1.ActiveSheetView.ColumnCount; i++)
  {
    FpSpread1.ActiveSheetView.ColumnHeader.Cells[0, i].Value = "Column" + (char)(65 + i);
    FpSpread1.ActiveSheetView.ColumnHeader.Cells[0, i].BackColor = Color.DarkBlue;
    FpSpread1.ActiveSheetView.ColumnHeader.Cells[0, i].ForeColor = Color.White;
  }
  
  // 行ヘッダの背景色/文字色を設定します
  for (i = 0; i < FpSpread1.ActiveSheetView.RowCount; i++)
  {
    FpSpread1.ActiveSheetView.RowHeader.Cells[i, 0].Value = "Row" + i.ToString();
    FpSpread1.ActiveSheetView.RowHeader.Cells[i, 0].BackColor = Color.DarkBlue;
    FpSpread1.ActiveSheetView.RowHeader.Cells[i, 0].ForeColor = Color.White;
  }
  
  // ヘッダのコーナーセルの背景色/文字色を設定します
  FpSpread1.ActiveSheetView.SheetCornerStyle.BackColor = Color.DarkBlue;
  FpSpread1.ActiveSheetView.SheetCornerStyle.ForeColor = Color.White;
  
  // 各セルの背景色/文字色を設定します
  for (i = 0; i <= FpSpread1.ActiveSheetView.RowCount - 1; i++)
  {
    for (j = 0; j <= FpSpread1.ActiveSheetView.ColumnCount - 1; j++)
    {
      FpSpread1.ActiveSheetView.Cells[i, j].Value = "R=" + i.ToString() + " C=" + j.ToString();
      FpSpread1.ActiveSheetView.Cells[i, j].BackColor = Color.Lavender;
      FpSpread1.ActiveSheetView.Cells[i, j].ForeColor = Color.Blue;
    }
  }
}

private void Button1_Click(object sender, System.EventArgs e)
{
  FpSpread1.SaveExcel(Server.MapPath(Request.ApplicationPath + "¥¥test.xls"), FarPoint.Web.Spread.Model.Includ.BothCustomOnly);
}

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