找回密码
 立即注册

QQ登录

只需一步,快速开始

hzh_3942206

初级会员

2

主题

7

帖子

374

积分

初级会员

积分
374

活字格认证

最新发帖
hzh_3942206
初级会员   /  发表于:2011-6-3 08:09  /   查看:9429  /  回复:9
例如,像excel 的功能一样,新插入行的格式与上一行相同。我想动态添加行, 添加进去的行格式和字体都默认与上一行的 一样,怎么设置? 跪求各位大侠

9 个回复

倒序浏览
gw0506
超级版主   /  发表于:2011-6-3 09:16:00
沙发
设置Rows.DefaultRow中的各个样式为你想要的结果。
然后调用Rows.Add方法,增加新行,样式就是DefaultRow设置的新行。
回复 使用道具 举报
hzh_3942206
初级会员   /  发表于:2011-6-23 12:29:00
板凳

回复 2# gw0506 的帖子

兄弟, DefaultRow 里面没有 Border 属性和 Font 属性设置啊?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-6-23 14:17:00
地板

回复 3# hzh_3942206 的帖子

在你的代码中可以访问以下属性嘛

  1.             FpSpread1.Rows.Default.Border
  2.             FpSpread1.Rows.Default.Font
复制代码
回复 使用道具 举报
zlhjini
新手上路   /  发表于:2012-1-20 23:33:00
5#
2位版主的方法行不通.无法实现像excel一样的效果。因为上一行每一个单元格不一定是统一格式,所以设置的DefaultRow属性对增加的新行是无效的,只有行高有效。如果我理解有误,请版主给一段代码看看效果。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2012-1-21 10:34:00
6#
你说的情况跟楼上的略有不同。
你可以自己根据需要定制多套NamedStyle,然后在添加的时候,取上一行的StyleName,设置跟新添加的行就可以了。

下面代码是设置不同的样式。
  1.             NamedStyle ns1 = new NamedStyle("style1");
  2.             ns1.BackColor = Color.Red;
  3.             NamedStyle ns2 = new NamedStyle("style2");
  4.             ns2.BackColor = Color.Purple;
  5.             this.fpSpread1.NamedStyles.Add(ns1);
  6.             this.fpSpread1.NamedStyles.Add(ns2);
  7.             this.fpSpread1.ActiveSheet.Rows[1].StyleName = "style1";
  8.             this.fpSpread1.ActiveSheet.Rows[3].StyleName = "style2";
复制代码

下面是添加行的代码
  1. this.fpSpread1.ActiveSheet.Rows.Add(2, 1);
  2.             this.fpSpread1.ActiveSheet.Rows[2].StyleName = this.fpSpread1.ActiveSheet.Rows[1].StyleName;
复制代码
回复 使用道具 举报
zlhjini
新手上路   /  发表于:2012-2-2 11:10:00
7#
感谢版主指导,首先给版主拜个年.
我跟楼主说的是一个意思,就是想像excel点击“插入行”按钮,动态插入行。
请版主仔细研究一下excel插入行功能,它插入的新行的单元格和上一行对应单元格的属性(字体、背景色、前景色、单元格类型、边框等)相同。请注意,你所插入的行的上一行每个单元格属性可能相同,也可能不同。
想请版主给一段代码,模拟这个功能,谢谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-2-2 12:21:00
8#
zlhjini 你好,在这里给你也拜年哈~
如果要实现和 Excel 相同的行插入效果,可以定制多套 Cell 下 NamedStyle 属性,然后在新增行中遍历单元格,把前一行的 Cell 下 NamedStyle  设置给新增行对应单元格。
测试步骤:
1.点击 Spread 工具栏中 InsertButton 插入行,如图

png

png

2.点击 InsertButton 会触发后台事件 InsertCommand,我们在改事件中执行操作即可,代码如下:
  1.         protected void FpSpread1_InsertCommand(object sender, SpreadCommandEventArgs e)
  2.         {
  3.             FarPoint.Web.Spread.Cell mycell;
  4.             FarPoint.Web.Spread.NamedStyle mnstyle = new FarPoint.Web.Spread.NamedStyle();
  5.             mnstyle.Name = "fpstyle";
  6.             mnstyle.BackColor = Color.Yellow;
  7.             FpSpread1.NamedStyles.Add(mnstyle);
  8.             mycell = FpSpread1.Cells[1, 0];
  9.             mycell.StyleName = mnstyle.Name;

  10.             FpSpread1.ActiveSheetView.Rows.Add(FpSpread1.ActiveSheetView.ActiveRow, 1);
  11.             FpSpread1.ActiveSheetView.Cells[FpSpread1.ActiveSheetView.ActiveRow, 0].StyleName = FpSpread1.ActiveSheetView.Cells[FpSpread1.ActiveSheetView.ActiveRow - 1, 0].StyleName;

  12.             e.Handled = true;
  13.         }
复制代码
回复 使用道具 举报
zlhjini
新手上路   /  发表于:2012-2-2 15:00:00
9#
谢谢版主,加上遍历,测试成功。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-2-2 15:57:00
10#

回复 9# zlhjini 的帖子

客气了~:share:
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部