Spread 表格控件:30 行代码实现计算器

发布时间:2015/01/06 00:01 发布者:iceman

返回博客中心

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下载:


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网