在全新发布的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;}
3) 调整表格大小
我们在初次添加表格时指定了相应的行数和列数,如果再在添加之后对行列数进行调整可以通过TableView.Resize()方法。
private void 调整大小ToolStripMenuItem_Click(object sender, EventArgs e){// 调整表格大小(行和列的数量)
table.Resize(6, 3);}
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);}
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;
}
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;
}
7) 表格相关公式引用介绍
Spread 支持表格中的结构化引用公式,结构化引用包括表格名称,列指示器和表格指示器。
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[销量])";
}
示例程序源码下载: