找回密码
 立即注册

QQ登录

只需一步,快速开始

婧友521

银牌会员

28

主题

59

帖子

3423

积分

银牌会员

积分
3423

活字格认证

婧友521
银牌会员   /  发表于:2012-8-31 13:00  /   查看:7183  /  回复:9
怎样在页面Page_Load 加载时给spread 的一个单元格设置公式, 比如 : 单价x数量=总金额
一个单元格为单价 tag 值:单价     一个单元格为数量  tag 值:数量   
最后在tag 值为总金额的单元格上设置公式 : 单价x数量=总金额
问: 怎样动态的找到tag值为总金额 的单元格并设置公式? 请教!!!! 急!!!!

9 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-8-31 18:03:00
沙发
回复 1楼婧友521的帖子

不好意思,没能理解:单价 tag 值 和 数量  tag 值 的含义,能否进一步解释下?
回复 使用道具 举报
婧友521
银牌会员   /  发表于:2012-9-3 11:04:00
板凳
就是说在后台设置公式  根据tag值找到单元格,在某个单元格上设置公式
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-3 14:42:00
地板
回复 3楼婧友521的帖子

婧友521 你好,
请使用以下代码测试:

  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (IsPostBack)
  4.             {
  5.                 return;
  6.             }
  7.             FpSpread1.Sheets[0].ReferenceStyle = FarPoint.Web.Spread.Model.ReferenceStyle.R1C1;
  8.             this.FpSpread1.ClientAutoCalculation = true;

  9.             this.FpSpread1.Sheets[0].Cells[0, 2].Tag = "单价";
  10.             this.FpSpread1.Sheets[0].Cells[1, 3].Tag = "数量";
  11.             this.FpSpread1.Sheets[0].Cells[2, 3].Tag = "总金额";

  12.             FarPoint.Web.Spread.Cell _unitPrice = this.FpSpread1.Sheets[0].GetCellFromTag(this.FpSpread1.Sheets[0].Cells[0, 0], "单价");
  13.             FarPoint.Web.Spread.Cell _quantity = this.FpSpread1.Sheets[0].GetCellFromTag(this.FpSpread1.Sheets[0].Cells[0, 0], "数量");
  14.             FarPoint.Web.Spread.Cell _toalPrice = this.FpSpread1.Sheets[0].GetCellFromTag(this.FpSpread1.Sheets[0].Cells[0, 0], "总金额");
  15.             this.FpSpread1.Sheets[0].AllowUserFormulas = true;
  16.             string formula = "R" + (_unitPrice.Row.Index + 1).ToString() + "C" + (_unitPrice.Column.Index + 1).ToString() + "*" + "R" + (_quantity.Row.Index + 1).ToString() + "C" + (_quantity.Column.Index + 1).ToString();

  17.             _toalPrice.Formula = formula;
  18.         }
复制代码
回复 使用道具 举报
婧友521
银牌会员   /  发表于:2012-9-3 16:16:00
5#
这段代码放到page_load 里面的话就报错!!!! 未将对象引用到实例!!
回复 使用道具 举报
婧友521
银牌会员   /  发表于:2012-9-3 16:23:00
6#
怎样在前台设置设置公式啊?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-3 16:32:00
7#
这段代码放到page_load 里面的话就报错!!!! 未将对象引用到实例!!
婧友521 发表于 2012-9-3 16:16:00

从报错信息上看,是没有添加相应的 Dll。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-3 16:43:00
8#
怎样在前台设置设置公式啊?
婧友521 发表于 2012-9-3 16:23:00

不好意思,在前台无法设置公式。
回复 使用道具 举报
婧友521
银牌会员   /  发表于:2012-9-3 17:26:00
9#
我在前台用js可以取到两个单元格的值 ,再把他们的乘积赋给第三个单元格, 我在请问你一下怎样将取到的单元格值转换为数字!!!
请教!!!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-9-3 18:44:00
10#
回复 9楼婧友521的帖子

你好,js 求乘积无需设置为数值型。
下面是我的测试代码:

  1.   if (IsPostBack)
  2.             {
  3.                 return;
  4.             }
  5.             this.FpSpread1.Sheets[0].Cells[0, 0].Value = 2;
  6.             this.FpSpread1.Sheets[0].Cells[0, 1].Value = 2;
复制代码

前台:

  1.   <script type="text/javascript">
  2.         function Button1_onclick() {
  3.             var spread = this.document.getElementById("<%=this.FpSpread1.ClientID%>");
  4.             var cell1 = spread.GetCellByRowCol(0, 0).innerText;
  5.             var cell2 = spread.GetCellByRowCol(0, 1).innerText;
  6.             var product = cell1 * cell2;
  7.         }
  8.     </script>
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部