找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoSL

银牌会员

3

主题

11

帖子

3937

积分

银牌会员

积分
3937

活字格认证

最新发帖
AutoSL
银牌会员   /  发表于:2013-5-22 09:41  /   查看:5913  /  回复:6
设置 sheetView.Protect = sheetView.AutoCalculation = sheetView.RestrictColumns = sheetView.RestrictRows=True;
但是在 sheetView.AddRows 后,单元格的公式没有自动更新,不知道跟哪些属相相关。

6 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-5-22 10:14:00
沙发
AutoSL 你好

你这个问题是Spread的问题吗,如果是Spread我会移动到Spread产品专区进行处理。
回复 使用道具 举报
AutoSL
银牌会员   /  发表于:2013-5-22 12:34:00
板凳
是的,辛苦了,发帖的时候没有看模块。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-5-22 18:28:00
地板
回复 1楼AutoSL的帖子

“单元格的公式没有自动更新”请问你是如何设置公式的?
能否详细描述你的问题?
把 sheetView.RestrictColumns = sheetView.RestrictRows=False 还会存在问题吗?
回复 使用道具 举报
AutoSL
银牌会员   /  发表于:2013-5-23 12:56:00
5#
执行代码如下:        
    spread1 = new FarPoint.Win.Spread.FpSpread();
            spread1.Dock = DockStyle.Fill;
            this.Panel2.Controls.Add(spread1);
            spread1.Sheets.Add(new FarPoint.Win.Spread.SheetView());

            //设置初始值
            spread1.ActiveSheet.SetValue(0, 0, 10);
            spread1.ActiveSheet.SetValue(1, 0, 20);
            spread1.ActiveSheet.SetFormula(3, 0, "SUM(A1:A2)");
            spread1.ActiveSheet.AutoCalculation = true;
            //增加一行
            spread1.ActiveSheet.AddRows(2, 1);
            spread1.ActiveSheet.SetValue(2, 0, spread1.ActiveSheet.Cells[4, 0].Formula);
回复 使用道具 举报
AutoSL
银牌会员   /  发表于:2013-5-23 13:04:00
6#
奇怪的是在设计器中增加一行,单元格的公式回自动变化。
SUM(A1:A2) 会变成 SUM(A1:A3)。
不知道是何缘故?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-5-23 17:38:00
7#
回复 6楼AutoSL的帖子

AutoSL 你好,

使用楼上代码设置,公式在我这边没有改变。

Untitled.png

公式还可以通过以下方法设置:
  1. spread1.ActiveSheet.SetFormula(3, 0, "A1+A2");
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部