找回密码
 立即注册

QQ登录

只需一步,快速开始

xujingtian

论坛元老

28

主题

115

帖子

5359

积分

论坛元老

积分
5359

活字格认证

xujingtian
论坛元老   /  发表于:2013-9-16 17:06  /   查看:7177  /  回复:5
试用过程中遇到如下问题,请帮忙给下思路:
1)如何复制单元格样式,比如说,我设置了其中的单元格是合并居中,并设置了前景色和背景色,复制后,只能获取到其中的文本,样式无法获取到,公式也无法获取到
2)后台设定一些样式后,如何做取消的动作,好像只有前台脚本做的动作,才能用自带的撤销功能
3)如何不分页


thx & rgds

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-9-16 20:27:00
沙发
回复 1楼xujingtian的帖子

你好,
1.样式信息的复制需要通过后台来做,Spread 提供了多种模型来存储设置单元格样式:DefaultSheetSpanModel 用于存储合并信息;DefaultSheetStyleModel 用于存储其他样式信息。参考代码:
  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (IsPostBack)
  4.             {
  5.                 return;
  6.             }
  7.             this.FpSpread1.Sheets[0].RowCount = 10;
  8.             FarPoint.Web.Spread.Model.DefaultSheetStyleModel styleModel = (FarPoint.Web.Spread.Model.DefaultSheetStyleModel)FpSpread1.Sheets[0].StyleModel;
  9.             FarPoint.Web.Spread.StyleInfo style = new FarPoint.Web.Spread.StyleInfo();
  10.             style.HorizontalAlign = HorizontalAlign.Right;
  11.             style.BackColor = Color.Yellow;
  12.             styleModel.SetDirectInfo(0, 0, style);

  13.             FarPoint.Web.Spread.Model.DefaultSheetSpanModel spanModel = (FarPoint.Web.Spread.Model.DefaultSheetSpanModel)FpSpread1.Sheets[0].SpanModel;
  14.             spanModel.Add(0, 0, 1, 2);
  15.         }

  16.         protected void Button1_Click(object sender, EventArgs e)
  17.         {
  18.             FarPoint.Web.Spread.Model.DefaultSheetStyleModel styleModel = (FarPoint.Web.Spread.Model.DefaultSheetStyleModel)FpSpread1.Sheets[0].StyleModel;
  19.             styleModel.Copy(0, 0, 5, 0, 1, 1);


  20.             FarPoint.Web.Spread.Model.DefaultSheetSpanModel spanModel = (FarPoint.Web.Spread.Model.DefaultSheetSpanModel)FpSpread1.Sheets[0].SpanModel;
  21.             spanModel.Copy(0, 0, 5, 0, 1, 1);
  22.         }
复制代码

2.当前后台设置样式动作还不能撤销,需要通过后台代码修改。
3.不分页可以通过设置 SheetView AllowPage 属性为 false 实现。
回复 使用道具 举报
xujingtian
论坛元老   /  发表于:2013-9-23 14:03:00
板凳
不好意思,关于第二点
2.当前后台设置样式动作还不能撤销,需要通过后台代码修改。

如何通过后台代码修改,记住所有操作过的动作,然后点撤销时,进行逆操作?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-23 16:37:00
地板
回复 3楼xujingtian的帖子

xujingtian 你好,

目前 Spread 还不具备维护这个列表的功能,需要手动实现。例如,你是通过 button 设置边框,那么你就需要记录设置的样式和范围。再撤销时重现设置回原始状态。
回复 使用道具 举报
xujingtian
论坛元老   /  发表于:2013-9-23 16:44:00
5#
回复 4楼iceman的帖子

OK,谢了,这样太麻烦了。暂时先不想这个功能了。
另,1)spread 如何设置单元的文本格式,e.g.设置为文本 OR 数字 OR 货币
      2) 现在点击一个CELL时有个淡蓝的底色,如何修改底色,如何点击某个CELL时,显示鼠标输入光标?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-9-23 18:12:00
6#
回复 5楼xujingtian的帖子

不客气,
第一个问题:
可以通过单元格类型来实现,分别为 TextCellType、DoubleCellType
、CurrencyCellType。更多单元格类型和使用方法请参考帮助文档:Understanding How Cell Types Display Data 章节。

第二个问题,请通过以下代码修测试:

  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (IsPostBack)
  4.             {
  5.                 return;
  6.             }

  7.             //改变选择颜色
  8.             FpSpread1.Sheets[0].SelectionBackColorStyle = FarPoint.Web.Spread.SelectionBackColorStyles.SelectionBackColor;
  9.             FpSpread1.Sheets[0].SelectionBackColor = Color.SaddleBrown;

  10.             //单击显示光标,单元格进入编辑状态。
  11.             FpSpread1.EditModePermanent = true;
  12.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部