找回密码
 立即注册

QQ登录

只需一步,快速开始

blo
版主   /  发表于:2011-3-10 18:00:00
11#
你把源文件另存一下,存时把option->formula中的R1C1勾掉,然后再用spread试一下?
回复 使用道具 举报
xiwu
中级会员   /  发表于:2011-3-10 21:07:00
12#
to gw0506,第一,公式的逻辑肯定是对的,因为导出去,再导进来就能出来正确结果,第二,公式引用的数据也是固定在程序里的,

to blo:你说的方法不太懂,请说详细一点
回复 使用道具 举报
xiwu
中级会员   /  发表于:2011-3-10 21:11:00
13#
再试了一下,如果导出为excel2003,再导入,这样再执行为单元格增加公式就正确出结果,难道是需要设置什么?
回复 使用道具 举报
xiwu
中级会员   /  发表于:2011-3-11 08:59:00
14#
另外又试了一种情况,spread编辑器中导入之前保存的excel文件(包含公式),这时能结果正确,运行程序,结果也正确,但这时执行我的增加公式的代码,结果就不正确了,我的代码如下
  private void buttonItem9_Click(object sender, EventArgs e)
        {
            SheetView sv = fpSpread1.Sheets["洞身衬砌表"];
            if (sv == null)
                return;
            int activeRows = sv.NonEmptyRowCount;
            if (activeRows > 2)
            {
                for (int i = 0; i < activeRows - 2; i++)
                {
                    SubsetLinFormula(i + 2);
                }
            }
        }

       private void SubsetLinFormula(int row)
        {           
            SheetView sv_洞身衬砌表 = fpSpread1.Sheets["洞身衬砌表"];
            if (sv_洞身衬砌表 == null)
                return;
            if (row < 2)
                return;
           sv_洞身衬砌表.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.R1C1;
           // sv_洞身衬砌表.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1;
            //各行公式都是一样的,以下按列顺序
            sv_洞身衬砌表.Cells[row, 0].Value = (row - 1).ToString();//序号

            //先设表头公式
            sv_洞身衬砌表.Cells[row, 26].Formula = "RC6&amp;RC7&amp;RC8&amp;RC5&amp;RC9";
            //支护参数列
            sv_洞身衬砌表.Cells[row, 25].Formula = "if(RC13=0,\"\",rc13)&amp;if(RC16=0,\"\",\"+\"&amp;RC16)";//施工方法(2),用于绘图
            //衬砌类型、加宽等无公式
            int n = 2;
            for (int m = 9; m < 25; m++)
            {
                string FormlaString = "IF(ISERROR(VLOOKUP(RC27,词典!R3C1:R300C17," + n.ToString() + ",0)),\"词典里没有\",VLOOKUP(RC27,词典!R3C1:R300C17," + n.ToString() + ",0))";
                sv_洞身衬砌表.Cells[row, m].Formula = FormlaString;
                n++;
            }        
         
        }
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-3-11 10:26:00
15#
你看这张效果图是否正确?

png

png
回复 使用道具 举报
xiwu
中级会员   /  发表于:2011-3-11 11:37:00
16#
图上的结果是正确的
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-3-11 13:37:00
17#
我是按照你给的代码做的。
所以我无法重现你的问题。

你最好做个能重现问题的简单demo,发给我。否则确实无法帮到你。
回复 使用道具 举报
xiwu
中级会员   /  发表于:2011-3-11 14:20:00
18#
能不能给个邮箱,我把项目发给你,大约有40M
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-3-11 14:30:00
19#
你把bin和obj文件夹删除了么?
回复 使用道具 举报
xiwu
中级会员   /  发表于:2011-3-11 14:32:00
20#
对不起,可能不行,程序是在CAD环境下才行运行的,你可能无法调试,可以的话,我可以把代码发给你,你帮我检查代码是否有问题


网速太糟糕了,如果有重复,请版主删掉
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部