Excel エクスポート時の結果をカスタマイズしたい

文書番号 : 25735     文書種別 : 使用方法     最終更新日 : 2008/05/24
文書を印刷する
対象製品
SPREAD for .NET 2.5J Web Forms Edition
詳細
SPREADのデータをExcel ファイルにエクスポートする際、セルの書式設定やページ設定(印刷の向き、用紙サイズ、拡大縮小印刷等)等を独自にカスタマイズすることはできません。

セル型の設定を変更したり、行を追加するなどのカスタマイズは可能です。
以下のサンプルコードでは、A2セルをハイパーリンク型セルからテキスト型に変更することで、エクスポートされるExcel ファイルのA2セルをハイパーリンクのURL(http://www.grapecity.com/tools/)からSPREADのセルに表示されているテキスト(GrapeCity)に変更しています。
また、行を追加して最終行に数式を設定しています。

◎サンプルコード(VB)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  If IsPostBack Then
    Return
  End If

  Dim r As Random = New Random(DateTime.Now.Hour * DateTime.Now.Minute * DateTime.Now.Second + DateTime.Now.Millisecond)
  Dim i As Integer

  Dim hlc As New FarPoint.Web.Spread.HyperLinkCellType()
  hlc.NavigateUrl = "http://www.grapecity.com/tools/"
  FpSpread1.ActiveSheetView.Cells(1, 0).CellType = hlc

  FpSpread1.ActiveSheetView.Cells(1, 0).Value = "GrapeCity"

  For i = 0 To FpSpread1.ActiveSheetView.RowCount - 1
    ' ランダムな数値データを設定
    FpSpread1.ActiveSheetView.Cells(i, 1).Value = r.Next(0, 100)
  Next i
End Sub

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
  ' クライアントの変更を確定
  FpSpread1.SaveChanges()

  ' シートの保護を解除
  FpSpread1.ActiveSheetView.Protect = False

  Dim hlc As New FarPoint.Web.Spread.HyperLinkCellType
  hlc = CType(FpSpread1.ActiveSheetView.GetCellType(1, 0), FarPoint.Web.Spread.HyperLinkCellType)

  Dim tc As New FarPoint.Web.Spread.TextCellType
  FpSpread1.ActiveSheetView.Cells(1, 0).CellType = tc

  ' 行の追加
  FpSpread1.ActiveSheetView.AddRows(FpSpread1.ActiveSheetView.RowCount, 1)

  FpSpread1.ActiveSheetView.Cells(FpSpread1.ActiveSheetView.RowCount - 1, 0).Value = "合計"
  FpSpread1.ActiveSheetView.Cells(FpSpread1.ActiveSheetView.RowCount - 1, 1).Formula = "SUM(B1:B3)"

  ' Excel ファイルにエクスポート
  Dim pathname As String = HttpContext.Current.Server.MapPath(Request.ApplicationPath & "/")
  FpSpread1.SaveExcel(pathname + "test.xls")

  ' シートの保護
  FpSpread1.ActiveSheetView.Protect = True

  FpSpread1.ActiveSheetView.Cells(1, 0).CellType = hlc

  ' 行の削除
  FpSpread1.ActiveSheetView.RemoveRows(FpSpread1.ActiveSheetView.RowCount - 1, 1)
End Sub

◎サンプルコード(C#)
protected void Page_Load(object sender, EventArgs e)
{
  if (this.IsPostBack)
  {
    return;
  }

  Random r = new Random(DateTime.Now.Hour * DateTime.Now.Minute * DateTime.Now.Second + DateTime.Now.Millisecond);
  int i;

  FarPoint.Web.Spread.HyperLinkCellType hlc = new FarPoint.Web.Spread.HyperLinkCellType();
  hlc.NavigateUrl = "http://www.grapecity.com/tools/";
  FpSpread1.ActiveSheetView.Cells[1, 0].CellType = hlc;

  FpSpread1.ActiveSheetView.Cells[1, 0].Value = "GrapeCity";

  for (i = 0; i <= FpSpread1.ActiveSheetView.RowCount - 1; i++)
  {
    // ランダムな数値データを設定
    FpSpread1.ActiveSheetView.Cells[i, 1].Value = r.Next(0, 100);
  }
}

protected void Button1_Click(object sender, EventArgs e)
{
  // クライアントの変更を確定
  FpSpread1.SaveChanges();

  // シートの保護を解除
  FpSpread1.ActiveSheetView.Protect = false;

  FarPoint.Web.Spread.HyperLinkCellType hlc = new FarPoint.Web.Spread.HyperLinkCellType();
  hlc = (FarPoint.Web.Spread.HyperLinkCellType)FpSpread1.ActiveSheetView.GetCellType(1, 0);

  FarPoint.Web.Spread.TextCellType tc = new FarPoint.Web.Spread.TextCellType();
  FpSpread1.ActiveSheetView.Cells[1, 0].CellType = tc;

  // 行の追加
  FpSpread1.ActiveSheetView.AddRows(FpSpread1.ActiveSheetView.RowCount, 1);

  FpSpread1.ActiveSheetView.Cells[FpSpread1.ActiveSheetView.RowCount - 1, 0].Value = "合計";
  FpSpread1.ActiveSheetView.Cells[FpSpread1.ActiveSheetView.RowCount - 1, 1].Formula = "SUM(B1:B3)";

  // Excel ファイルにエクスポート
  string pathname = HttpContext.Current.Server.MapPath(Request.ApplicationPath + "/");
  FpSpread1.SaveExcel(pathname + "test.xls");

  // シートの保護
  FpSpread1.ActiveSheetView.Protect = true;

  FpSpread1.ActiveSheetView.Cells[1, 0].CellType = hlc;

  // 行の削除
  FpSpread1.ActiveSheetView.RemoveRows(FpSpread1.ActiveSheetView.RowCount - 1, 1);
}
キーワード
Excelインポート/エクスポート

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