Spread Studio 8 新特性:表格(Table)功能

发布时间:2014/12/15 00:12 发布者:jian

返回博客中心

在全新发布的Spread Studio 8 的WinForms平台中,新增了功能强大的表格(Table)功能,它可以将单元格区域显示为一个表格,包含过滤器、绑定行、内置样式等功能,并与Excel中的表格兼容。本文将全面介绍表格(Table)功能的使用方法,包括以下主题:

1) 添加表格

2) 使用表格过滤器

3) 调整表格大小

4) 对表格数据进行排序

5) 设置表格样式

6) 添加表格运算公式

7) 表格相关公式引用介绍

1) 添加表格

最为关键的方法是AddTable,该方法有多个重载方法,可以根据你的需要进行选择,详细说明请参考帮助文档中的 FarPoint.Win.Spread Assembly > FarPoint.Win.Spread Namespace > SheetView Class : AddTable Method 章节。

    {
        fpSpread1.Sheets[0].RemoveTable("table");
        // 通过 AddTable 方法添加表格
        fpSpread1.Sheets[0].Cells[1, 1].Text = "产品名称";
        fpSpread1.Sheets[0].Cells[1, 2].Text = "销量";
        fpSpread1.Sheets[0].Cells[2, 1].Text = "iPhone 6";
        fpSpread1.Sheets[0].Cells[2, 2].Value = 5000;
        fpSpread1.Sheets[0].Cells[3, 1].Text = "iPhone 6 Plus";
        fpSpread1.Sheets[0].Cells[3, 2].Value = 6800;
        fpSpread1.Sheets[0].Cells[4, 1].Text = "小米 4";
        fpSpread1.Sheets[0].Cells[4, 2].Value = 12000;
        fpSpread1.Sheets[0].Cells[5, 1].Text = "三星 Note4";
        fpSpread1.Sheets[0].Cells[5, 2].Value = 5800;
        table = fpSpread1.Sheets[0].AddTable("table", 1, 1, 6, 2);
    }

2) 使用表格过滤器

表格(Table)提供了类似于Excel中数据过滤的过滤工具栏,要控制表格的过滤功能可设置TableView. FilterButtonVisible属性。

    private void 数据过滤ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        // 设置表格是否显示过滤工具栏
        table.FilterButtonVisible = !table.FilterButtonVisible;
    }

clip_image001

3) 调整表格大小

我们在初次添加表格时指定了相应的行数和列数,如果再在添加之后对行列数进行调整可以通过TableView.Resize()方法。

    private void 调整大小ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        // 调整表格大小(行和列的数量)
        table.Resize(6, 3);
    }

image

4) 对表格数据进行排序

Spread本身为SheetView提供了基于列的排序功能,在新增的表格(Table)中也提供了同样的排序功能,你可以通过TableView.Sort()方法来指定排序方式。

    private void 数据排序ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        // 通过 Sort 方法对表格数据进行排序
        FarPoint.Win.Spread.ComplexSortInfo[] sort = new FarPoint.Win.Spread.ComplexSortInfo[1];
        sort[0] = new FarPoint.Win.Spread.ComplexSortInfo(1, true);
        table.Sort(sort);
    }

image

5) 设置表格样式

你可以为表格指定不同的显示风格,比如是否显示标题行、会总行、第一列、最后一列、镶边行、镶边列等外观样式,同时,在设计器中你还可以选择内置的表格样式。

    private void 设置样式ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        // 设置表格样式
        fpSpread1.Sheets[0].RemoveTable("table");
        FarPoint.Win.ComplexBorderSide bside = new FarPoint.Win.ComplexBorderSide(Color.Yellow);
        FarPoint.Win.Spread.TableBorder tborder = new FarPoint.Win.Spread.TableBorder(bside);
        FarPoint.Win.Spread.TableElementStyle testyle = new FarPoint.Win.Spread.TableElementStyle(tborder, Color.Red, Color.Blue, FarPoint.Win.Spread.RegularBoldItalicFontStyle.Bold);
        FarPoint.Win.Spread.TableStyle tstyle = fpSpread1.CreateTableStyle("Style1", FarPoint.Win.Spread.TableStyle.TableStyleLight2);
        tstyle.FirstColumn = testyle;
        fpSpread1.Sheets[0].Cells[1, 1].Text = "产品名称";
        fpSpread1.Sheets[0].Cells[1, 2].Text = "销量";
        fpSpread1.Sheets[0].Cells[2, 1].Text = "iPhone 6";
        fpSpread1.Sheets[0].Cells[2, 2].Value = 5000;
        fpSpread1.Sheets[0].Cells[3, 1].Text = "iPhone 6 Plus";
        fpSpread1.Sheets[0].Cells[3, 2].Value = 6800;
        fpSpread1.Sheets[0].Cells[4, 1].Text = "小米 4";
        fpSpread1.Sheets[0].Cells[4, 2].Value = 12000;
        fpSpread1.Sheets[0].Cells[5, 1].Text = "三星 Note4";
        fpSpread1.Sheets[0].Cells[5, 2].Value = 5800;
        fpSpread1.TableStyleCollection.Add(tstyle);
        FarPoint.Win.Spread.TableView table = fpSpread1.Sheets[0].AddTable("table", 1, 1, 6, 2, "Style1");
        table.FirstColumn = true;
    }

clip_image004

6) 添加表格运算公式

你还可以为表格(Table)添加公式,在合计行中提供了下拉列表,你可以指定需要的运算公式。

    private void 表格公式ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        fpSpread1.Sheets[0].RemoveTable("table");
        // 设置表格的合计行是否显示
        fpSpread1.Sheets[0].Cells[1, 1].Text = "产品名称";
        fpSpread1.Sheets[0].Cells[1, 2].Text = "销量";
        fpSpread1.Sheets[0].Cells[2, 1].Text = "iPhone 6";
        fpSpread1.Sheets[0].Cells[2, 2].Value = 5000;
        fpSpread1.Sheets[0].Cells[3, 1].Text = "iPhone 6 Plus";
        fpSpread1.Sheets[0].Cells[3, 2].Value = 6800;
        fpSpread1.Sheets[0].Cells[4, 1].Text = "小米 4";
        fpSpread1.Sheets[0].Cells[4, 2].Value = 12000;
        fpSpread1.Sheets[0].Cells[5, 1].Text = "三星 Note4";
        fpSpread1.Sheets[0].Cells[5, 2].Value = 5800;
        FarPoint.Win.Spread.TableView table = fpSpread1.Sheets[0].AddTable("table", 1, 1, 6, 2);
        table.TotalRowVisible = true;
    }

SNAGHTML19b2b0b6

7) 表格相关公式引用介绍

Spread 支持表格中的结构化引用公式,结构化引用包括表格名称,列指示器和表格指示器。

clip_image006

    private void 公式引用ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        fpSpread1.Sheets[0].RemoveTable("table");
        // 在公式中引用表格
        fpSpread1.Sheets[0].Cells[1, 1].Text = "产品名称";
        fpSpread1.Sheets[0].Cells[1, 2].Text = "销量";
        fpSpread1.Sheets[0].Cells[2, 1].Text = "iPhone 6";
        fpSpread1.Sheets[0].Cells[2, 2].Value = 5000;
        fpSpread1.Sheets[0].Cells[3, 1].Text = "iPhone 6 Plus";
        fpSpread1.Sheets[0].Cells[3, 2].Value = 6800;
        fpSpread1.Sheets[0].Cells[4, 1].Text = "小米 4";
        fpSpread1.Sheets[0].Cells[4, 2].Value = 12000;
        fpSpread1.Sheets[0].Cells[5, 1].Text = "三星 Note4";
        fpSpread1.Sheets[0].Cells[5, 2].Value = 5800;
        FarPoint.Win.Spread.TableView table = fpSpread1.Sheets[0].AddTable("table", 1, 1, 6, 2);
        fpSpread1.Sheets[0].Cells[8, 1].Text = "销量合计:";
        fpSpread1.Sheets[0].Cells[8, 2].Formula = "SUM(table[销量])";
    }

clip_image007

示例程序源码下载:

免费下载 Spread Studio 8 试用版

 


关于葡萄城

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

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