找回密码
 立即注册

QQ登录

只需一步,快速开始

burns

初级会员

24

主题

54

帖子

498

积分

初级会员

积分
498

活字格认证

burns
初级会员   /  发表于:2013-8-30 02:26  /   查看:6781  /  回复:5
前提:ColumnFooter每页都出现。

能否在CoumnFooter中加入sum公式,对每页中的某数值列进行合计?合计的对象为当前页的数据而非全部。

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-8-30 11:26:00
沙发
回复 1楼burns的帖子

你好,

有一点疑问:在 Spread Winform 平台本身没有页的概念。你这里指的是什么呢?
关于列脚合计请参考以下代码:

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             fpSpread1.Sheets[0].ColumnFooter.Visible = true;
  4.             fpSpread1.Sheets[0].ColumnFooter.RowCount = 2;

  5.             fpSpread1.Sheets[0].ColumnFooter.SetAggregationType(0, 1, FarPoint.Win.Spread.Model.AggregationType.Sum);
  6.             fpSpread1.Sheets[0].ColumnFooter.SetAggregationFormat(0, 1, "合计{0}");
  7.             fpSpread1.Sheets[0].ColumnFooter.Cells[0, 0].Value = "Sum";
  8.         }
复制代码


以上代码是针对一个表格中,某一列的所有单元格进行合计。

如果指的是每一屏单元格为“页”,那么需要通过代码统计,例如使用 TopChange 来抓取顶部行变得事件,再逐一单元格求和,最后赋值给列脚。
回复 使用道具 举报
burns
初级会员   /  发表于:2013-8-30 16:14:00
板凳
抱歉,是在打印的时候(PrintInfo)设置为ShowColumnFooterEachPage = true;然后想在每个打印页的ColumnFooter中设置一个公式,以对当前页的某列进行数据合计。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-8-30 18:29:00
地板
回复 3楼burns的帖子

你好,

目前 Spread 无法实现这个用例,你可以通过使用普通行来模拟列脚,在打印之前添加,打印之后移除。来模拟这个效果。

如果在实现过程中有疑问,欢迎继续讨论。

谢谢
回复 使用道具 举报
burns
初级会员   /  发表于:2013-8-30 22:05:00
5#
好的,谢谢。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-1 11:31:00
6#
回复 5楼burns的帖子

客气,有问题欢迎继续提问。
使用方法和心得也期待能和大家分享。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部