找回密码
 立即注册

QQ登录

只需一步,快速开始

cccc
金牌服务用户   /  发表于:2024-7-9 16:11  /   查看:472  /  回复:5
本帖最后由 cccc 于 2024-7-11 15:54 编辑

    您好,我首先新建一个sheet,复制sheet1,新表命名为101.000_1。后台主要代码如下           
      FarPoint.Win.Spread.SheetView snew = new FarPoint.Win.Spread.SheetView();
      FarPoint.Win.Spread.SheetView s = new FarPoint.Win.Spread.SheetView();
      snew = fpspread1.Sheets.Find(snewname);//snewname 为图中所示的101.000_1
      if (snew == null)
      {
            s = fpspread1.Sheets[0];                           
            snew = CopySheet(s);
            snew.SheetName = strRowItemSnCode;
            fpspread1.Sheets.Add(snew);
       }
       fpspread1.ActiveSheet = snew;

        //CopySheet函数

       public FarPoint.Win.Spread.SheetView CopySheet(FarPoint.Win.Spread.SheetView sheet)
       {
             FarPoint.Win.Spread.SheetView newSheet = null;
             if (sheet != null)
             {
                  newSheet = (FarPoint.Win.Spread.SheetView)FarPoint.Win.Serializer.LoadObjectXml(typeof(FarPoint.Win.Spread.SheetView),               FarPoint.Win.Serializer.GetObjectXml(sheet, "CopySheet"), "CopySheet");
              }
             return newSheet;
        }

      问题1:sheet1的合计行是有设置公式的, 1720511450230.png352306517.png ,复制新建的表的合计行公式就没有了 1720511640267.png90093077.png 。我在设置合计行其中一个单元格公式进行测试,则提示不是合法公式,而且合计行另一个单元格也带了公式。 1720510690223.png261820372.png 设置公式的后台代码:

                                int rendindex = snew.RowCount - 1;
                                string columnLabel = snew.ColumnHeader.Columns[7].Label;
                                string formula = " SUM(" +columnLabel + " 1 " +":" +columnLabel + (rendindex - 1).ToString() +")" ;
                                snew.Cells[rendindex, 7].Formula = formula;
请老师帮忙看下,什么原因呢?有什么解决办法,或者提供一个快速复制新建一个有公式和格式的整个sheet表?谢谢。

5 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-7-9 16:26:28
沙发
你是要在同一个workbook中复制这个sheet区域还是在不同workbook中来复制
回复 使用道具 举报
cccc
金牌服务用户   /  发表于:2024-7-9 16:42:09
板凳
Richard.Ma 发表于 2024-7-9 16:26
你是要在同一个workbook中复制这个sheet区域还是在不同workbook中来复制

同一个workbook中
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-7-9 17:55:46
地板
你把使用你的CopySheet方法前的spread对象通过Save方法保存一个xml文件,我在本地测试看看
回复 使用道具 举报
cccc
金牌服务用户   /  发表于:2024-7-10 16:45:53
5#
已解决,排查到原因,区域赋值的数组的行维度过大,合计行的也赋值空值,所以有公式,却没有合计值。打扰了,谢谢。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-7-10 17:56:53
6#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部