找回密码
 立即注册

QQ登录

只需一步,快速开始

garfieldzf8
论坛元老   /  发表于:2014-9-25 14:52:00
11#
回复 10楼iceman的帖子

this.FpSpread1.Sheets.Clear();
                string fpXml = Server.MapPath("student.xml");

                FpSpread fp = new FpSpread();
                fp.Open(fpXml);
                fp.ActiveSheetView.SheetName = "Test";

                this.FpSpread1.Sheets.Add(fp.ActiveSheetView);

                this.FpSpread1.ActiveSheetView.Columns[3].Formula = "SUM(B1+C1)";

//6楼提交了Demo, 我是通过xml加载样式, 然后通过代码里设置公式,目前是不起作用的。
回复 使用道具 举报
garfieldzf8
论坛元老   /  发表于:2014-9-25 16:45:00
12#
回复 10楼iceman的帖子

我刚才又试了下通过这样指定的公式this.FpSpread1.ActiveSheetView.Columns[3].Formula = "SUM(B1+C1)";   添加数据后必须点击页面上的更新才起作用, 能直接自动计算吗?
QQ截图20140925164253.png
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-9-25 17:48:00
13#
回复 12楼garfieldzf8的帖子

可以通过以下代码设置:

  1. FarPoint.Web.Spread.Model.DefaultSheetDataModel dm = new FarPoint.Web.Spread.Model.DefaultSheetDataModel();
  2. dm.AutoCalculation = true;
  3. dm.ColumnCount = 3;
  4. dm.RowCount = 3;            
  5. FpSpread1.ActiveSheetView.DataModel=dm;

复制代码
回复 使用道具 举报
garfieldzf8
论坛元老   /  发表于:2014-9-26 10:20:00
14#
回复 13楼iceman的帖子

this.FpSpread1.Sheets.Clear();
                string fpXml = Server.MapPath("student.xml");

                FpSpread fp = new FpSpread();
                fp.Open(fpXml);
                fp.ActiveSheetView.SheetName = "Test";
               
                this.FpSpread1.Sheets.Add(fp.ActiveSheetView);

                this.FpSpread1.ActiveSheetView.Columns[3].Formula = "SUM(B1+C1)";

我是通过这种方式实现的, 因为用你的这种方法时, 样式无法加载,并且设置列公式那行代码会报错。

还有其他方法没? 为什么直接设置fp.ActiveSheetView.AutoCalculation=true不行呢?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-9-26 18:12:00
15#
garfieldzf8 你好,

我运行你 #6 中的示例程序,并按照以下方式修改,前端是可以自动运算的,你可以测试一下:
  1.     protected void Page_Load(object sender, EventArgs e)
  2.     {
  3.         if (!IsPostBack)
  4.         {
  5.             //this.FpSpread1.Sheets.Clear();
  6.             //string fpXml = Server.MapPath("student.xml");

  7.             //FpSpread fp = new FpSpread();
  8.             //fp.Open(fpXml);
  9.             //fp.ActiveSheetView.SheetName ="Test";
  10.                
  11.             //this.FpSpread1.Sheets.Add(fp.ActiveSheetView);

  12.             this.FpSpread1.Open(Server.MapPath("student.xml"));
  13.         }
  14.     }
复制代码
回复 使用道具 举报
garfieldzf8
论坛元老   /  发表于:2014-9-28 09:15:00
16#
回复 15楼dof的帖子

之所以实例化FpSpread是因为业务需要,要向当前的fpspread里添加多个sheet.  这时候需要怎么设置呢?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-9-28 14:59:00
17#
回复 15楼dof的帖子

之所以实例化FpSpread是因为业务需要,要向当前的fpspread里添......
garfieldzf8 发表于 2014-9-28 9:15:00


将多个Spread XML加载到同一个Spread中,你所使用的代码本身是正确的,在公式自动计算这一块,需要设置 this.FpSpread1.ClientAutoCalculation = true; 同时还要设置每个Sheet的this.FpSpread1.Sheets[0].AutoCalculation = true;

  1.     protected void Page_Load(object sender, EventArgs e)
  2.     {
  3.         if (!IsPostBack)
  4.         {
  5.             this.FpSpread1.Sheets.Clear();

  6.             string fpXml = "";

  7.             fpXml = Server.MapPath("t1.xml");
  8.             FpSpread fp = new FpSpread();
  9.             fp.Open(fpXml);
  10.             fp.Sheets[0].SheetName = "t1";
  11.             this.FpSpread1.Sheets.Add(fp.Sheets[0]);
  12.             this.FpSpread1.Sheets[0].AutoCalculation = true;

  13.             fpXml = Server.MapPath("t2.xml");
  14.             fp = new FpSpread();
  15.             fp.Open(fpXml);
  16.             fp.Sheets[0].SheetName = "t2";
  17.             this.FpSpread1.Sheets.Add(fp.Sheets[0]);
  18.             this.FpSpread1.Sheets[1].AutoCalculation = true;

  19.             this.FpSpread1.ClientAutoCalculation = true;
  20.         }
  21.     }
复制代码



FarpointSample.zip (26.82 KB, 下载次数: 399)

评分

参与人数 1满意度 +5 收起 理由
garfieldzf8 + 5 搞定

查看全部评分

回复 使用道具 举报
garfieldzf8
论坛元老   /  发表于:2014-9-28 15:04:00
18#
回复 17楼dof的帖子

OK, 搞定,谢谢你们的回复
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2014-9-28 16:37:00
19#
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部