マルチヘッダ

複数列の行ヘッダ、複数行の列ヘッダを任意に作成できます。

このサンプルでは、列ヘッダを複数行に設定しています。 同様の手順で、行ヘッダを複数列にも設定できます。
 製品ID製品分類製品名第1Q第2Q
4月5月6月7月8月9月
110001乳製品酪農ミルク5,5005,0004,5006,0005,5005,000
220001清涼飲料水いよかんドリンク1,0003,0002,7002,7001,0003,000
320002清涼飲料水ぶどうジュース3,0003,5004,8004,8003,0003,500
420003清涼飲料水マンゴードリンク2,0001,0005001,0502,0001,000
530001ビール激辛ビール5,5008,0008,50010,0005,5008,000
630002ビールモルトビール3,0003,5002,7804,0003,0003,500
720004清涼飲料水ぶどうの街500300200700500300
830003ビールオリエントの村8,0009,5009,5809,0008,0009,500
940002焼酎吟醸 ほめごろし6,0007,0009,0009,5006,0007,000
1040003焼酎大吟醸 オリエント1,0005,0006,0005,0001,0005,000
1140005焼酎麦焼酎 ちこちこ1,0001,5001,2001,2581,0001,500
1210002乳製品酪農ミルク(低脂肪)501202380456501202
1330004ビールオリエントの里963256365554868853
1430005ビールオリエントからの便り5,4523,3662,5633,3365,5843,333
1530006ビールオリエントの森103965365885757744
1630007ビールオリエントの町3,6546,5453,2549,6561,2341,234
1730008ビールオリエントの未来都市4,5674,4543,6545,9876,5366,633

ソースコード

別ウィンドウで表示
using System;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Configuration;

public partial class rowcolcell_multiheader : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack) return;

        // セル型の自動設定を無効化
        FpSpread1.ActiveSheetView.DataAutoCellTypes = false;

        // データ連結
        DataSet ds = new DataSet();
        ds.ReadXml(MapPath("../App_Data/datanum3.xml"));
        FpSpread1.DataSource = ds;
        
        // SPREAD初期化
        InitSpread(FpSpread1.Sheets[0]);
    }

    private void InitSpread(FarPoint.Web.Spread.SheetView sheet)
    {
        // SPREAD設定
        FpSpread1.CommandBar.Visible = false;
        FpSpread1.CssClass = "spreadStyle";
        FpSpread1.UseClipboard = false;

        // フォントサイズの設定
        sheet.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%");
        sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Parse("80%");

        // シート設定
        sheet.PageSize = sheet.RowCount;

        // 列幅の設定
        sheet.Columns[0].Width = 45;
        sheet.Columns[1].Width = 85;
        sheet.Columns[2].Width = 140;
        sheet.Columns[3].Width = 40;
        sheet.Columns[4].Width = 65;
        sheet.Columns[5].Width = 65;
        sheet.Columns[6].Width = 65;
        sheet.Columns[7].Width = 65;
        sheet.Columns[8].Width = 65;
        sheet.Columns[9].Width = 65;

        // 縦方向の揃え位置を中央に設定
        sheet.DefaultStyle.VerticalAlign = VerticalAlign.Middle;

        // 各列のセル型を設定
        FarPoint.Web.Spread.GeneralCellType gnr = new FarPoint.Web.Spread.GeneralCellType();
        gnr.FormatString = "#,##0";
        sheet.Columns[4, 9].CellType = gnr;
        sheet.Columns[4, 9].HorizontalAlign = HorizontalAlign.Right;
        sheet.Columns[3].HorizontalAlign = HorizontalAlign.Center;

        sheet.Columns[3].Visible = false;

        // 列ヘッダを2行に設定
        sheet.ColumnHeader.RowCount = 2;
        sheet.ColumnHeader.AutoTextIndex = 0;

        // ヘッダ再設定
        sheet.ColumnHeaderSpanModel.Add(0, 0, 2, 1);
        sheet.ColumnHeaderSpanModel.Add(0, 1, 2, 1);
        sheet.ColumnHeaderSpanModel.Add(0, 2, 2, 1);
        sheet.ColumnHeaderSpanModel.Add(0, 3, 2, 1);
        
        sheet.ColumnHeader.Cells[1, 4].Text = "4月";
        sheet.ColumnHeader.Cells[1, 5].Text = "5月";
        sheet.ColumnHeader.Cells[1, 6].Text = "6月";
        sheet.ColumnHeader.Cells[1, 7].Text = "7月";
        sheet.ColumnHeader.Cells[1, 8].Text = "8月";
        sheet.ColumnHeader.Cells[1, 9].Text = "9月";

        sheet.ColumnHeader.Cells[0, 4].Text = "第1Q";
        sheet.ColumnHeaderSpanModel.Add(0, 4, 1, 3);

        sheet.ColumnHeader.Cells[0, 7].Text = "第2Q";
        sheet.ColumnHeaderSpanModel.Add(0, 7, 1, 3);
    }
}

Partial Public Class rowcolcell_multiheader
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IsPostBack Then
            Return
        End If

        ' セル型の自動設定を無効化
        FpSpread1.ActiveSheetView.DataAutoCellTypes = False

        ' データ連結
        Dim ds As New System.Data.DataSet()
        ds.ReadXml(MapPath("../App_Data/datanum3.xml"))
        FpSpread1.DataSource = ds

        ' SPREAD初期化
        InitSpread(FpSpread1.Sheets(0))
    End Sub

    Private Sub InitSpread(ByVal sheet As FarPoint.Web.Spread.SheetView)
        ' SPREAD設定
        FpSpread1.CommandBar.Visible = False
        FpSpread1.CssClass = "spreadStyle"
        FpSpread1.UseClipboard = False

        ' フォントサイズの設定
        sheet.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.ColumnHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.RowHeader.DefaultStyle.Font.Size = FontUnit.Parse("80%")
        sheet.SheetCorner.DefaultStyle.Font.Size = FontUnit.Parse("80%")

        ' シート設定
        sheet.PageSize = sheet.RowCount

        ' 列幅の設定
        sheet.Columns(0).Width = 45
        sheet.Columns(1).Width = 85
        sheet.Columns(2).Width = 140
        sheet.Columns(3).Width = 40
        sheet.Columns(4).Width = 65
        sheet.Columns(5).Width = 65
        sheet.Columns(6).Width = 65
        sheet.Columns(7).Width = 65
        sheet.Columns(8).Width = 65
        sheet.Columns(9).Width = 65

        ' 縦方向の揃え位置を中央に設定
        sheet.DefaultStyle.VerticalAlign = VerticalAlign.Middle

        ' 各列のセル型を設定
        Dim gnr As New FarPoint.Web.Spread.GeneralCellType()
        gnr.FormatString = "#,##0"
        sheet.Columns(4, 9).CellType = gnr
        sheet.Columns(4, 9).HorizontalAlign = HorizontalAlign.Right
        sheet.Columns(3).HorizontalAlign = HorizontalAlign.Center

        sheet.Columns(3).Visible = False

        ' 列ヘッダを2行に設定
        sheet.ColumnHeader.RowCount = 2
        sheet.ColumnHeader.AutoTextIndex = 0

        ' ヘッダ再設定
        sheet.ColumnHeaderSpanModel.Add(0, 0, 2, 1)
        sheet.ColumnHeaderSpanModel.Add(0, 1, 2, 1)
        sheet.ColumnHeaderSpanModel.Add(0, 2, 2, 1)
        sheet.ColumnHeaderSpanModel.Add(0, 3, 2, 1)

        sheet.ColumnHeader.Cells(1, 4).Text = "4月"
        sheet.ColumnHeader.Cells(1, 5).Text = "5月"
        sheet.ColumnHeader.Cells(1, 6).Text = "6月"
        sheet.ColumnHeader.Cells(1, 7).Text = "7月"
        sheet.ColumnHeader.Cells(1, 8).Text = "8月"
        sheet.ColumnHeader.Cells(1, 9).Text = "9月"

        sheet.ColumnHeader.Cells(0, 4).Text = "第1Q"
        sheet.ColumnHeaderSpanModel.Add(0, 4, 1, 3)

        sheet.ColumnHeader.Cells(0, 7).Text = "第2Q"
        sheet.ColumnHeaderSpanModel.Add(0, 7, 1, 3)
    End Sub
End Class

<%@ Page MasterPageFile="~/MasterPage.master" Language="c#" AutoEventWireup="true" 
         Inherits="rowcolcell_multiheader" CodeFile="multiheader.aspx.cs" %>

<%@ Register Assembly="FarPoint.Web.SpreadJ" Namespace="FarPoint.Web.Spread" TagPrefix="FarPoint" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">    
    <farpoint:FpSpread ID="FpSpread1" runat="server" BorderColor="#A0A0A0" BorderStyle="Solid"
        BorderWidth="1px">
        <CommandBar BackColor="#F6F6F6" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight"
            ButtonShadowColor="ControlDark" />
        <Sheets>
            <farpoint:SheetView SheetName="Sheet1">
            </farpoint:SheetView>
        </Sheets>
    </farpoint:FpSpread>
</asp:Content>