找回密码
 立即注册

QQ登录

只需一步,快速开始

LeeDongmei

金牌服务用户

44

主题

237

帖子

531

积分

金牌服务用户

积分
531

活字格认证微信认证勋章元老葡萄

LeeDongmei
金牌服务用户   /  发表于:2011-3-28 09:46  /   查看:6868  /  回复:8
如题,在Excel一个单元格中,若字符较多时,可自动换行,且可设定上下左右居中排列。在Spread中如何实现呢?

8 个回复

倒序浏览
gw0506
超级版主   /  发表于:2011-3-28 10:04:00
沙发
  1.             
  2. GeneralCellType gct = new GeneralCellType();
  3. gct.WordWrap = true;

  4. this.fpSpread1.ActiveSheet.Cells[0, 0].CellType = gct;
  5. this.fpSpread1.ActiveSheet.Cells[0, 0].HorizontalAlignment = CellHorizontalAlignment.Center;
  6. this.fpSpread1.ActiveSheet.Cells[0, 0].VerticalAlignment = CellVerticalAlignment.Bottom;
复制代码
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2011-3-28 10:12:00
板凳
感谢!我试下再回复。
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2011-3-28 10:29:00
地板
可实现自动换行,但上下不能达到居中。如图:

新图片(3).png

49 KB, 下载次数: 297

png

回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2011-3-28 10:32:00
5#
我的代码如下:(VB的)
Dim gct As New GeneralCellType()

        'GeneralCellType gct = new GeneralCellType();

        gct.AllowWrap = True

        'gct.WordWrap = True



        'this.fpSpread1.ActiveSheet.Cells[0, 0].CellType = gct;

        'this.fpSpread1.ActiveSheet.Cells[0, 0].HorizontalAlignment = CellHorizontalAlignment.Center;

        'this.fpSpread1.ActiveSheet.Cells[0, 0].VerticalAlignment = CellVerticalAlignment.Bottom;



        FpSpread1.Sheets(0).ColumnHeaderSpanModel.Add(8, 8, 3, 1)

        FpSpread1.Sheets(0).ColumnHeader.Cells(8, 8).Text = "单价基准"

        FpSpread1.Sheets(0).ColumnHeader.Cells(8, 8).CellType = gct

        FpSpread1.Sheets(0).ColumnHeader.Columns(8).Width = 40 '80

        FpSpread1.Sheets(0).ColumnHeader.Cells(8, 8).VerticalAlign = VerticalAlign.Bottom
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-3-28 10:44:00
6#
上下居中即“垂直对齐”,需要调整VerticalAlignment。
将其设置为CellVerticalAlignment.Center即可。
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2011-3-28 10:51:00
7#
我之前设定的就是CellVerticalAlignment.Center,但没达到上下居中的效果。刚才看到版主第一次的回复,以为需要设定成bottom才行,结果如故。再者,即使设定成bottom,也应该是靠下呀,为何结果还是靠上呢。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-3-28 11:31:00
8#
你指的是“单位基准”这个ColumnHeader的cell吧。
ColumnHeader的Appearance需要通过Style来设置。建议你可以参看帮助文档中“Customizing the Appearance of Headers”章节。

针对你的问题,可以通过如下代码实现:
  1. StyleInfo styleInfo = new StyleInfo();
  2. styleInfo.VerticalAlignment = CellVerticalAlignment.Center;
  3. this.fpSpread1.ActiveSheet.ColumnHeader.DefaultStyle = styleInfo;
  4. this.fpSpread1.ActiveSheet.ColumnHeader.Cells[0, 8].Value = "单位基准";
复制代码

至于你说的设为Bottom,显示却没有靠下对齐。应该是你的Cell对象没有去到想要的。应该是Cells(0,8), 我看到你的代码是Cells(8,8)。你可以在确认一下。
回复 使用道具 举报
LeeDongmei
金牌服务用户   /  发表于:2011-3-29 15:16:00
9#
我的列标题有很多行,设定“单价基准”的位置是Cells(8,8)。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部