找回密码
 立即注册

QQ登录

只需一步,快速开始

[已处理] spread公式

xujingtian
论坛元老   /  发表于:2013-10-31 15:47:00
11#
解决了,因为有表头,所以用这个还不行。
最后写了正则,每个CELL单独设置
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-10-31 18:11:00
12#
回复 11楼xujingtian的帖子

xujingtian 你好,
我隐藏了列头,在列上设置公式还是启作用的,我把我的测试 Demo 上传给你,请参考:

10823.zip (7.35 KB, 下载次数: 274)
回复 使用道具 举报
xujingtian
论坛元老   /  发表于:2013-11-2 21:34:00
13#
回复 12楼iceman的帖子

非常感谢,但是我说的表头,不是ColumnHeader,而是在SPREAD里面自己定义了一些冻结的行做为表头

1.jpg (9.22 KB, 下载次数: 177)
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-4 15:54:00
14#
回复 13楼xujingtian的帖子

xujingtian 你好,
感谢你的反馈。
我这边的测试结果是,公式和文本无法共存。不知道你是如何做到的。

  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (IsPostBack)
  4.             {
  5.                 return;
  6.             }

  7.             
  8.             FarPoint.Web.Spread.SheetView sv = this.FpSpread1.Sheets[0];

  9.             sv.ColumnHeader.Visible = false;
  10.             sv.FrozenRowCount = 1;

  11.             sv.Columns[2].Formula = "SUM(A1:B1)";
  12.             sv.Cells[0, 2].Text = "合计";
  13.             sv.Cells[0, 2].Value = "合计";

  14.             this.FpSpread1.ClientAutoCalculation = true;
  15.         }
复制代码


如果你需要继续讨论,还请把你的测试结果反馈给我。
回复 使用道具 举报
xujingtian
论坛元老   /  发表于:2013-11-4 23:07:00
15#
回复 14楼iceman的帖子

hi 我是这样做的,
前提:在后台动态增加SPREAD的行
1)获取指定单元格(e.g. C4)的公式(e.g. A4+B4)
2)在新增行时(e.g.新增第5行),如果列的索引与 1)中指定单元格的列索引相同(此处应该是C5),则用正则,将公式中数字替换成当前行的索引,即将 A4+B4中的4替换成5,即此时C5的公式为A5+C5
基本替换函数如下:
    private static string GetNewFormu(string strOldFormu, int index)
        {
            string strNewForm = strOldFormu;
            string sCharacterRegx = @"\d+";
            Regex rgVal = new Regex(sCharacterRegx);
            strNewForm = rgVal.Replace(strOldFormu, index.ToString());
            return strNewForm;
        }
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-5 13:48:00
16#
回复 15楼xujingtian的帖子

好的,了解感谢分享。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部