版主,我试了你的方法,直接设置FpSpread的行数和列数,并赋值,然后使用的你方法来做是可以的,但是,当我改变LayoutMode的值时,使用自定义的模板来做,就不行了,代码如下:
private void SetFpSpread()
{
FpSpread1.Height = 500;
FpSpread1.ActiveSheetView.LayoutMode = FarPoint.Web.Spread.SheetView.LayoutModeType.RowTemplateLayoutMode;
FpSpread1.ActiveSheetView.RowTemplate.RowCount = 2;
FpSpread1.ActiveSheetView.RowTemplate.ColumnCount = 3;
FpSpread1.ActiveSheetView.RowTemplate.LayoutCells[0, 0].DataIndex = 0;
FpSpread1.ActiveSheetView.RowTemplate.LayoutCells[1, 0].DataIndex = 1;
FpSpread1.ActiveSheetView.RowTemplate.LayoutCells[0, 1].DataIndex = 2;
FpSpread1.ActiveSheetView.RowTemplate.LayoutCells[1, 1].DataIndex = 3;
FpSpread1.ActiveSheetView.RowTemplate.LayoutCells[0, 2].DataIndex = 4;
FpSpread1.ActiveSheetView.RowTemplate.LayoutCells[1, 2].DataIndex = 5;
FpSpread1.ActiveSheetView.Rows.Count = 3;
FpSpread1.ActiveSheetView.ColumnCount = 6;
FarPoint.Web.Spread.TextCellType txtCellType=new FarPoint.Web.Spread.TextCellType();
txtCellType.ShowEditor=true;
FpSpread1.ActiveSheetView.Columns[2].CellType = txtCellType;
for (int i = 0; i < 3;i++ )
{
FpSpread1.ActiveSheetView.Cells[i, 0].Value = 2;
FpSpread1.ActiveSheetView.Cells[i, 1].Value = 2;
FpSpread1.ActiveSheetView.Cells[i, 3].Value = 3;
FpSpread1.ActiveSheetView.Cells[i, 4].Value = 5;
}
FpSpread1.ActiveSheetView.Columns[5].Formula = "RODUCT(B,F)";
}
我有几个问题,你代码中使用A1和B1来代码列,
你们使用字母来代表列的依据是什么?比如我有很多列,超过了字母的个数,我该怎样指定字母来对应的列?
如果是多表头,表头不止一行,又怎么表示,我做的代码,没对表头命名,结果它就自动以A、B、C这样来命名的,但是我使用B,F来代表列给公式,显示的结果又不对,这应该怎么写啊?
还有就是,使用这个公式只能是在绑定时,对列绑定了数据,然后它才会自动计算,我现在是需要在文本框中输入值,希望输过后,比如失去光标时,进行计算,这该怎么做呢? |