找回密码
 立即注册

QQ登录

只需一步,快速开始

sxtywp2

初级会员

10

主题

32

帖子

284

积分

初级会员

积分
284
sxtywp2
初级会员   /  发表于:2017-2-9 10:36  /   查看:4017  /  回复:7
本帖最后由 sxtywp2 于 2017-2-9 10:37 编辑

Excel导入设计器后,格式需要怎么控制?因为发现代码,
如:         this.FpSpread1.Sheets[0].RowCount = 20;
        this.FpSpread1.Sheets[0].ColumnCount = 25;
        FpSpread1.ClientAutoSize = true;
        this.FpSpread1.CommandBar.Visible = false;
或设计器中设置FpSpread1.CommandBar.Visible 为false
    模式改为单选等
对于运行后看都不起作用?
请给于帮助,谢谢!

7 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-9 12:11:17
沙发
设置测操作都需要在导入Excel之后去完成,先设置再导入,这些设置都会被导入的Excel设置覆盖
回复 使用道具 举报
sxtywp2
初级会员   /  发表于:2017-2-9 16:00:59
板凳
看到个鼠标选择行变动的事件SpreadCommandEventHandler ActiveRowChanged不知道怎么用?
不好意思,前几天见过个添加非绑定行的说明,今天怎么也找不见了,谢谢
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-9 17:19:07
地板
下面是实例代码,您现在想实现什么需求
            FpSpread1.ActiveRowChanged += FpSpread1_ActiveRowChanged;
private void FpSpread1_ActiveRowChanged(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
{
    TextBox1.Text = e.CommandArgument.ToString();
}
回复 使用道具 举报
sxtywp2
初级会员   /  发表于:2017-2-9 17:49:39
5#
本帖最后由 sxtywp2 于 2017-2-10 08:38 编辑

一、在列表中的行变动的时候,取取到新行的关键字段,然后带关键字段值转到明细表页面

二、还有个问题请教
Binding to a Range是指区域绑定吧,手册代码中
System.Data.DataTable dt = new System.Data.DataTable("Test");
System.Data.DataRow dr = default(System.Data.DataRow);
dt.Columns.Add("Series0");
dt.Columns.Add("Series1");
dt.Columns.Add("Series2");
dr = dt.NewRow();
dr[0] = 2;
dr[1] = 1;
dr[2] = 5;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 4;
dr[1] = 2;
dr[2] = 5;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 3;
dr[1] = 4;
dr[2] = 5;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 3;
dr[1] = 4;
dr[2] = 5;
FpSpread1.DataSource = dt;
FarPoint.Web.Spread.SpreadDataSource spreadDS = new FarPoint.Web.Spread.SpreadDataSource();
spreadDS.SheetName = FpSpread1.ActiveSheetView.SheetName;
spreadDS.SpreadID = "FpSpread1";//FpSpread1.ID;
spreadDS.CellRange = new FarPoint.Web.Spread.Model.CellRange(0, 0, 3, 1);
this.Controls.Add(spreadDS);
this.ListBox1.DataSource = spreadDS;
this.ListBox1.DataTextField = "Series0";
this.ListBox1.DataBind();
其中的ListBox1与FpSpread1看不明白

三、表格第五行有个计算:A5=C5+E5+G5+I5
当第7、第9等等许多行满足这类似条件,想写个循环
      其中核心语句:
    FpSpread1.Sheets[0].Cells[m+2, 0].Formula = "C(m+2)+E(m+2)+G(m+2)+I(m+2)";
  或A(m+2)=C(m+2)+E(m+2)+G(m+2)+I(m+2)或其他
不知道怎么写,请教,谢谢!

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-10 12:27:55
6#
1. 在事件中,使用 FpSpread1.ActiveSheetView.ActiveRow 就可以获取当前行index,然后从这行获取您要的信息。

2. 哪个Demo是把spread中一个区域的数据绑定到 listbox里

3.这样写
        for (var m = 0; m < 3; m++)
            {
                FpSpread1.Sheets[0].Cells[m + 2, 0].Formula = "C" + (m + 2) + "E" + (m + 2) + "G" + (m + 2) + "I" + (m + 2);
            }
回复 使用道具 举报
sxtywp2
初级会员   /  发表于:2017-2-10 14:20:05
7#
本帖最后由 sxtywp2 于 2017-2-10 14:30 编辑

请教:
一、行高全部设置为20,列宽全部设置为50,特定的一行或一列设置为60
二、this.FpSpread1.OpenExcel(this.Server.MapPath(@"test.xlsx"), FarPoint.Excel.ExcelOpenFlags.ColumnHeaders);
加载excel文件后,
this.FpSpread1.Sheets[0].RowCount = 20;
this.FpSpread1.ActiveSheetView.OperationMode = FarPoint.Web.Spread.OperationMode.SingleSelect;
等等语句报“未将对象引用设置到对象的实例”或其他,  是否加载excel文件后就不能做这类的设置了?
谢谢
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-10 16:15:57
8#
1.

            FpSpread1.ActiveSheetView.DefaultRowHeight = 20;
            FpSpread1.ActiveSheetView.DefaultColumnWidth = 50;
            FpSpread1.ActiveSheetView.Columns[9].Width = 80;

2. 可以的,在Open之后去操作都是可以的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部