找回密码
 立即注册

QQ登录

只需一步,快速开始

victorysoft

高级会员

40

主题

100

帖子

1040

积分

高级会员

积分
1040

活字格认证

victorysoft
高级会员   /  发表于:2013-1-23 16:57  /   查看:5294  /  回复:3
在Spread 5 for WinForm中,单元格类型TextBoxCellType和RichTextBox都支持自动换行和多行,使用这两种单元类型,怎样得到单元格多行文本的总行数?

3 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-23 17:21:00
沙发
回复 1楼victorysoft的帖子

如果将WordWrap设置为True会比较难计算,设置为false的情况下可以通过单元格的Value属性得到行数
  1.     FarPoint.Win.Spread.CellType.TextCellType tct = new TextCellType();
  2.     tct.Multiline = true;
  3.     tct.WordWrap = false;

  4.     fpSpread1.ActiveSheet.Columns[0].CellType = tct;
复制代码
  1. int lines = fpSpread1.ActiveSheet.ActiveCell.Value.ToString().Split(new char[] { '\n' }).Length;
复制代码
回复 使用道具 举报
victorysoft
高级会员   /  发表于:2013-1-24 09:56:00
板凳
经过测试,行数计算不对。换行后的文本用Split分隔后,可能存在空串,代码应该为:
int lines = fpSpread1.ActiveSheet.ActiveCell.Value.ToString().Split(new char[] { '\n' },StringSplitOptions.RemoveEmptyEntries).Length;
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-1-24 11:25:00
地板
回复 3楼victorysoft的帖子

谢谢分享
  1.     string value = fpSpread1.ActiveSheet.ActiveCell.Value.ToString();
  2.     var lines = value.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部