cingsoft 发表于 2015-7-8 14:42:00

Spread报表控件如何设置精度

比如我的底层数据是2.4956 我想保留三位小数 2.496 如何实现

iceman 发表于 2015-7-8 17:28:00

回复 1楼cingsoft的帖子

可以通过四舍五入公式设置:

            gcSpreadSheet1.Sheets.Cells.Formula = "ROUND(E1,3)";
            gcSpreadSheet1.Sheets.Cells.Value = 2.4956;

cingsoft 发表于 2015-7-8 18:45:00

回复 2楼iceman的帖子

ROUND(E1,3) 这个E1代表什么 指的是我所在的单元格吗?

cingsoft 发表于 2015-7-9 09:22:00

回复 2楼iceman的帖子

你好:我设置完精度之后为什么变成这样了

      /// <summary>
      /// 设置数据精度
      /// </summary>
      /// <param name="行数"></param>
      /// <param name="设置精度的列"></param>
      private void SetPrecision(int RowCount, int ColumnIndex)
      {
            for (int i = -1; i < RowCount;i++ )
            {
                if (SpreadTableWorksheet.Cells.Value != null)
                {
                  //decimal Value = Convert.ToDecimal(SpreadTableWorksheet.Cells.Value);
                  SpreadTableWorksheet.Cells.Formula = "ROUND(E1,3)";
                  SpreadTableWorksheet.Cells.Value = 2.49564;
                }
            }
      }

我是通过循环的方式 来设置 还有这个E1到底指的是什么?

iceman 发表于 2015-7-9 16:24:00

回复 4楼cingsoft的帖子

E1 指的是在公式中当前单元格的坐标,E1 就代表列头为 E 行头为 1 的单元格位置。

如果您的公式过多,可以使用 R1C1 这种引用方式,R代表行,C 代表列,R1C1 即代表Cell。这样您可以通过循环拼凑公式:

Worksheet SpreadTableWorksheet;
      public MainWindow()
      {
            InitializeComponent();
            SpreadTableWorksheet = this.gcSpreadSheet1.ActiveSheet;
            SpreadTableWorksheet.ReferenceStyle = ReferenceStyle.R1C1;
            for (int i = 0; i < 11; i++)
            {
                SpreadTableWorksheet.Cells.Value = 2.49564;
            }
            SetPrecision(20, 0);

      }

      /// <summary>
      /// 设置数据精度
      /// </summary>
      /// <param name="行数"></param>
      /// <param name="设置精度的列"></param>
      private void SetPrecision(int RowCount, int ColumnIndex)
      {
            for (int i = 0; i < RowCount; i++)
            {
                if (SpreadTableWorksheet.Cells.Value != null)
                {
                  //decimal Value = Convert.ToDecimal(SpreadTableWorksheet.Cells.Value);
                  SpreadTableWorksheet.Cells.Formula = "ROUND(R"+(i+1).ToString()+"C1,3)";
                  SpreadTableWorksheet.Cells.Value = 2.49564;
                }
            }
      }

iceman 发表于 2015-7-17 17:36:00

回复 1楼cingsoft的帖子

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢   
http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
页: [1]
查看完整版本: Spread报表控件如何设置精度