数式エクステンダ

数式エクステンダ(FormulaExtender)を使用すると、FpSpreadコントロールの値を計算して、テキストボックスなど他のコントロールに計算結果を表示できます。

このサンプルではシート上の値を合計して、ページ下部に設置したテキストボックスに表示します。シートを編集して合計を再計算する場合は、SPREADの更新ボタンをクリックしてください。
 ABCDEFG
11000      
21200      
32100      
4       
5       
6       
7       
   
シート上にあるセルの合計値:

ソースコード

別ウィンドウで表示

using FarPoint.Web.Chart;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

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

        // SPREADの設定
        InitSpread(FpSpread1);

        // シート設定
        InitSpreadStyles(FpSpread1.Sheets[0]);
    }

    private void InitSpread(FarPoint.Web.Spread.FpSpread spread)
    {
        spread.CssClass = "spreadStyle2";
        spread.UseClipboard = false;
    }

    private void InitSpreadStyles(FarPoint.Web.Spread.SheetView sheet)
    {
        // 行列の設定
        sheet.RowCount = 7;
        sheet.ColumnCount = 7;
        sheet.PageSize = 25;
        
        // シートのフォントサイズの設定
        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.AllowUserFormulas = true;
        sheet.Columns[0].CellType = new FarPoint.Web.Spread.IntegerCellType();
        sheet.SetClip(0, 0, 3, 1, "1000\r\n1200\r\n2100");
    }

}
Imports FarPoint.Web.Chart
Imports System.Collections.Generic
Imports System.Drawing
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls

Partial Public Class formulaextender
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(sender As Object, e As EventArgs)
        If IsPostBack Then
            Return
        End If

        ' SPREADの設定
        InitSpread(FpSpread1)

        ' シート設定
        InitSpreadStyles(FpSpread1.Sheets(0))
    End Sub

    Private Sub InitSpread(spread As FarPoint.Web.Spread.FpSpread)
        spread.CssClass = "spreadStyle2"
        spread.UseClipboard = False
    End Sub

    Private Sub InitSpreadStyles(sheet As FarPoint.Web.Spread.SheetView)
        ' 行列の設定
        sheet.RowCount = 7
        sheet.ColumnCount = 7
        sheet.PageSize = 25

        ' シートのフォントサイズの設定
        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.AllowUserFormulas = True
        sheet.Columns(0).CellType = New FarPoint.Web.Spread.IntegerCellType()
        sheet.SetClip(0, 0, 3, 1, "1000" & vbCr & vbLf & "1200" & vbCr & vbLf & "2100")
    End Sub

End Class

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="formulaextender.aspx.cs" Inherits="formulaextender" %>

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

<asp:Content ID="Content1" ContentPlaceHolderID="HeaderPlaceHolder1" runat="Server">
</asp:Content>


<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <FarPoint:FpSpread ID="FpSpread1" runat="server" BorderColor="#A0A0A0" BorderStyle="Solid" BorderWidth="1px" Height="250px" TabIndex="2" HorizontalScrollBarPolicy="Never" VerticalScrollBarPolicy="Never">
        <CommandBar BackColor="#F6F6F6" ButtonFaceColor="Control" ButtonHighlightColor="ControlLightLight" ButtonShadowColor="ControlDark">
        </CommandBar>
        <Sheets>
            <FarPoint:SheetView SheetName="Sheet1">
            </FarPoint:SheetView>
        </Sheets>
    </FarPoint:FpSpread>
    <FarPoint:FormulaExtender ID="FormulaExtender1" runat="server">
        <FormulaEntries>
            <FarPoint:FormulaEntry ControlID="TextBox1" Formula="SUM([FpSpread1]Sheet1!A1:G7)" />
        </FormulaEntries>
    </FarPoint:FormulaExtender>
    <div style ="margin-top:10px">
        <table>
            <tr>
                <td>シート上にあるセルの合計値:</td>
                <td>
                    <asp:TextBox ID="TextBox1" runat="server" Text="TextBox1" Height="35px"></asp:TextBox>
                </td>
            </tr>
        </table>

    </div>
</asp:Content>