找回密码
 立即注册

QQ登录

只需一步,快速开始

ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-18 15:07:00
地板
应该是在拼接公式时有点不准确,你可以测试一下这段代码:
  1.     private void fpSpread1_SelectionChanged(object sender, FarPoint.Win.Spread.SelectionChangedEventArgs e)
  2.     {
  3.         string rowStarLabel = (e.Range.Row+1).ToString();
  4.         string rowEndLabel = (e.Range.Row + e.Range.RowCount).ToString();
  5.         string colStarLabel = this.fpSpread1.Sheets[0].Columns[e.Range.Column].Label;
  6.         string colEndLabel = this.fpSpread1.Sheets[0].Columns[e.Range.Column + e.Range.ColumnCount - 1].Label;
  7.         string formula = "SUM(" + colStarLabel + rowStarLabel + ":" + colEndLabel + rowEndLabel + ")";

  8.         FarPoint.Win.Spread.SheetView sheetview = new FarPoint.Win.Spread.SheetView();
  9.         sheetview.RowCount = fpSpread1.ActiveSheet.GetSelection(0).RowCount + 1;
  10.         sheetview.ColumnCount = fpSpread1.ActiveSheet.GetSelection(0).ColumnCount;

  11.         fpSpread1.ActiveSheet.ClipboardCopy();
  12.         sheetview.ClipboardPaste();

  13.         for (int i = 0; i < sheetview.Columns.Count; i++)
  14.         {
  15.             sheetview.Columns[i].ResetCellType();
  16.         }
  17.             
  18.         FarPoint.Win.Spread.CellType.NumberCellType numObj = new FarPoint.Win.Spread.CellType.NumberCellType();
  19.         sheetview.Cells[sheetview.RowCount - 1, 0].CellType = numObj;
  20.         sheetview.Cells[sheetview.RowCount - 1, 0].Formula = formula;
  21.         textBox1.Text = sheetview.Cells[sheetview.RowCount - 1, 0].Text;
  22.     }
复制代码
回复 使用道具 举报
lh8350
论坛元老   /  发表于:2012-7-18 14:32:00
板凳
private void fpSpread1_SelectionChanged(object sender, FarPoint.Win.Spread.SelectionChangedEventArgs e)
        {
            string rowStarLabel = e.Range.Row.ToString();
            string rowEndLabel = (e.Range.Row + e.Range.RowCount - 1).ToString();
            string colStarLabel = this.fpSpread1.Sheets[0].Columns[e.Range.Column].Label;
            string colEndLabel = this.fpSpread1.Sheets[0].Columns[e.Range.Column + e.Range.ColumnCount - 1].Label;
            string formula = "SUM(" + colStarLabel + rowStarLabel + ":" + colEndLabel + rowEndLabel + ")";
            FarPoint.Win.Spread.SheetView sheetview = new FarPoint.Win.Spread.SheetView();
            FarPoint.Win.Spread.CellType.NumberCellType numObj=new FarPoint.Win.Spread.CellType.NumberCellType();
            sheetview.Cells[1, 1].CellType = numObj;
            sheetview.Cells[1, 1].Formula = formula;
            button1.Text = sheetview.Cells[1, 1].Value.ToString();

        }
这样做的,但是不行啊,报错!要怎么写才可以呢?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-18 14:18:00
沙发
“如何将这个公式的值赋值给文本框”这个需求中的“文本框”是独立于Spread之外的TextBox控件吗,还是Spread中的每一个单元格。

如果所显示的Spread单元格不能设置公式,可以创建一个临时的SheetView,通过这个临时的SheetView来完成公式的计算,然后将计算的结果赋给文本框。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部