找回密码
 立即注册

QQ登录

只需一步,快速开始

hezhilin
初级会员   /  发表于:2013-3-26 19:32:00
11#
回复 10楼dof的帖子

我找到公式不起作用的原因了,是因为我移动了列,像下面代码,如果执行了grd.ActiveSheetView.MoveColumn(3, 1, 1),公式写的是C1*D1,实际却执行的是B1*D1,我公式是在移动列之后才生成的!
但我移动列是必须的,因为列是最终用户自己定义格式的,列的位置,宽度等等!
         grd.ActiveSheetView.MoveColumn(3, 1, 1)
        Dim i As Integer
        For i = 0 To grd.Rows.Count - 1
            grd.Cells(i, 4).Formula = "C" & (i + 1).ToString & "*D" & (i + 1).ToString
        Next
问题例程如附件所示!
销售公式.rar (2.45 MB, 下载次数: 162)
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-3-27 10:15:00
12#
回复 11楼hezhilin的帖子

hezhilin 你好,
spread 公式根据行列标签进行定位。
移动列后无法自动识别,建议通过 Column 下 tag 属性进行标记列,在设置公式之前遍历列,通过 tag 标签获取当前列标签,进而设置公式。
回复 使用道具 举报
hezhilin
初级会员   /  发表于:2013-3-27 23:27:00
13#
回复 12楼iceman的帖子

grd.ActiveSheetView.MoveColumn(3, 1, 1)
        Dim i As Integer
        For i = 0 To grd.Rows.Count - 1
            grd.Cells(i, 4).Formula = "C" & (i + 1).ToString & "*D" & (i + 1).ToString
        Next
代码就这么简单,就是因为使用了Movecolumn所以公式不对了,请问我所提交附件里问题使用tag标签设置公式如何设置,能否详细说明 !我所提交例子并没有使用tag属性,而且我在我实际项目里设置公式时,确实也是通过tag来找到这一列,然后设置公式的!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-3-28 11:42:00
14#
回复 13楼hezhilin的帖子

你好,
楼主的目的是否是使“UI界面上”第五列为“第三列及第四列”的乘积?请参考我的代码:

  1.         string columnmove;
  2.         string columnto;

  3.         protected void Page_Load(object sender, EventArgs e)
  4.         {
  5.             if (IsPostBack)
  6.             {
  7.                 return;
  8.             }
  9.             this.FpSpread1.Sheets[0].ColumnCount = 5;
  10.             this.FpSpread1.Sheets[0].Columns[4].Formula = "PRODUCT(C1:D1)";
  11.         }

  12.         protected void Button1_Click(object sender, EventArgs e)
  13.         {
  14.             int moveindex = 3;
  15.             int toindex = 1;

  16.             columnmove = this.FpSpread1.Sheets[0].Columns[moveindex].Label;
  17.             columnto = this.FpSpread1.Sheets[0].Columns[toindex].Label;

  18.             this.FpSpread1.Sheets[0].MoveColumn(3, 1, 1);

  19.             this.FpSpread1.Sheets[0].Columns[4].Formula = "PRODUCT("+columnto+"1"+":"+"D1)";
  20.         }
复制代码
回复 使用道具 举报
hezhilin
初级会员   /  发表于:2013-3-30 13:42:00
15#
我搞清楚公式是怎么回事了, 其余的工作我在程序其他地方做补充开发吧!谢谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-1 12:09:00
16#
回复 15楼hezhilin的帖子

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