← 返回所有博客文章

Spread XAML 表格控件(Spread WinRTSpread WPF-Silverlight) 具备丰富的数据展示功能和公式计算功能。可以轻松创建计算器、交互式的Dashboard、丰富的报表样式等!今天我们就来介绍下如何通过Spread实现一个简易的计算器。

首先,创建新的工程

添加 GcSpreadSheet 控件到窗体中

右键点击控件,选择“Create a new document” ,这时工程中会自动创建spreasheet1.ssxaml 文件,同时自动设置当前 Spread 控件的 DocumentUri 属性为该文档。

这时设计器已经自动弹出来了,可以通过设计器模拟Spread表格的样式。操作行为基本和 Excel 是一致的,设置完成后保存模板拖出 Spread 设计器。

接下来我们可以调用 CellClick 事件

XAML code:

<UI:GcSpreadSheet x:Name="gcSpreadSheet1" Width="490" Height="730" DocumentUri="ms-appx:///Spread Documents/spreadsheet1.ssxml" CellClick="gcSpreadSheet1_CellClick"/>

 

C# code:

void gcSpreadSheet1_CellClick(object sender, CellClickEventArgs e)
{
    var sheet = this.gcSpreadSheet1.ActiveSheet;
    if (e.Column == 4 && e.Row == 7) //=
    {
        sheet[2, 1].Formula = "";
        try
        {
            sheet[2, 1].Formula = sheet[1, 1].Text;
        }
        catch
        {
            sheet[2, 1].Text = "Invalid Formula!";
        }
    }
    else if (e.Column == 1 && e.Row == 3) //C
    {
        sheet[1, 1].ResetText();
        sheet[2, 1].ResetText();
        sheet[2, 1].Formula = "";
    }
    else if (e.Column == 3 && e.Row == 3) //BS
    {
        var txt = sheet[1, 1].Text;
        if (txt == string.Empty) return;
        sheet[1, 1].Text = txt.Substring(0, txt.Length - 1);
    }
    else if (e.Column > 0 && e.Column < 5 && e.Row > 3 && e.Row < 9) //digits and signs
    {
        sheet[1, 1].Text = sheet[1, 1].Text + sheet[e.Row, e.Column].Text;
        sheet[2, 1].ResetText();
        sheet[2, 1].Formula = "";
    }
}

 

Demo下载: