找回密码
 立即注册

QQ登录

只需一步,快速开始

UpLin

中级会员

2

主题

8

帖子

684

积分

中级会员

积分
684

活字格认证

最新发帖
UpLin
中级会员   /  发表于:2015-7-30 17:09  /   查看:10671  /  回复:15
TXTextControl.Line lstart = wordControl.Lines.GetItem(cell.Start - 1);
TXTextControl.Line lend = wordControl.Lines.GetItem(cell.Start + cell.Length - 1);
int height = lend.TextBounds.Top - lstart.TextBounds.Top + lend.TextBounds.Height;
使用这种方法不能获取到单元格文字与边框有距离的真实高度。如:

QQ截图20150730171026.png
还有个问题就是 height和width的单位是什么呢?我想将word的表格转换到excel中,该如何换算

15 个回复

正序浏览
iceman
社区贡献组   /  发表于:2015-9-17 09:11:00
16#
回复 12楼UpLin的帖子

请问问题是否解决?
为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-9 12:31:00
15#
回复 10楼UpLin的帖子

UpLin 你好,
cell.CellFormat.BottomTextDistance + cell.CellFormat.TopTextDistance 为 0 时,我们看到的空隙是LineSpace。
你可以通过以下链接了解并设置:
1.http://www.textcontrol.com/en_US ... lutelinespacing.htm
2.http://www.textcontrol.com/en_US ... mat.linespacing.htm
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-1 17:37:00
14#
回复 12楼UpLin的帖子

抱歉让你久等了。
TopTextDistance 、BottomTextDistance 属性默认状态下是0。至于为什么UI上和设置值不同目前还不太清楚。我需要跟厂商沟通下,看是否能给出一个合理的解决方法。

有进一步反馈及时通知你。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-8-24 17:58:00
13#
回复 12楼UpLin的帖子

很抱歉不能精确满足你的需求。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
UpLin
中级会员   /  发表于:2015-8-24 15:26:00
12#
回复 11楼iceman的帖子

哦 那就是不能获取单元格的精确高度了。 项目需求是 “打开已有的表格,并获取单元格的高度”
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-8-20 18:03:00
11#
回复 10楼UpLin的帖子

这两个值默认为0,如果您需要精准计算可以提前设置其值,代码如下:

  1.         private void addTableToolStripMenuItem_Click(object sender, EventArgs e)
  2.         {
  3.             this.textControl1.Tables.Add(10,10,11);
  4.             TXTextControl.Table tb = this.textControl1.Tables.GetItem(11);
  5.             foreach (TXTextControl.TableCell cell in tb.Cells)
  6.             {
  7.                 cell.CellFormat.TopTextDistance = 10;
  8.                 cell.CellFormat.BottomTextDistance = 10;
  9.             }

  10.         }
复制代码
回复 使用道具 举报
UpLin
中级会员   /  发表于:2015-8-20 13:46:00
10#
回复 9楼iceman的帖子

不行啊  cell.CellFormat.BottomTextDistance + cell.CellFormat.TopTextDistance 这两个值 始终是为0的
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-8-19 19:16:00
9#
回复 1楼UpLin的帖子

非常抱歉让您久等了。以下是测试代码,主要是通过计算当前单元格最上部文字位置及最下部文字位置和单元格的上下文字边距来实现的:

  1. private void addTableToolStripMenuItem_Click(object sender, EventArgs e)
  2.         {
  3.             this.textControl1.Tables.Add(10,10,11);
  4.         }

  5.         private void getRowHeightToolStripMenuItem_Click(object sender, EventArgs e)
  6.         {
  7.             TXTextControl.Table tb = this.textControl1.Tables.GetItem(11);

  8.             foreach (TXTextControl.TableCell cell in tb.Cells)
  9.             {
  10.                int height =  getTextHeight(cell, this.textControl1);
  11.             }
  12.         }

  13.         /// <summary>
  14.         /// Iterates over all cells within the row and search the highest cell.
  15.         /// </summary>
  16.         /// <param name="cell"></param>
  17.         /// <param name="table">Contains the cell</param>
  18.         /// <param name="textControl">Contains the table and the cell</param>
  19.         /// <returns>Height of the row</returns>
  20.         int getHeight(TXTextControl.TableCell cell, TXTextControl.Table table, TXTextControl.TextControl textControl)
  21.         {
  22.             int absoluteHeight = -1;
  23.             for (int i = 1; i <= table.Columns.Count; i++)
  24.             {
  25.                 int relativeCellHeight = getTextHeight(table.Cells.GetItem(cell.Row, i), textControl);
  26.                 if (relativeCellHeight > absoluteHeight)
  27.                 {
  28.                     absoluteHeight = relativeCellHeight;
  29.                 }
  30.             }
  31.             return absoluteHeight;
  32.         }

  33.         /// <summary>
  34.         /// Calculates the height with help of the bounds of the first and last character of the TableCell.
  35.         /// The TextDistances are considered.
  36.         /// </summary>
  37.         /// <param name="cell">Contains the text</param>
  38.         /// <param name="textControl">Required to get the TextChar</param>
  39.         /// <returns>The minimum height of the cell.</returns>
  40.         int getTextHeight(TXTextControl.TableCell cell, TXTextControl.TextControl textControl)
  41.         {
  42.             TXTextControl.TextChar firstTextChar = textControl.TextChars[cell.Start];
  43.             TXTextControl.TextChar lastTextChar = textControl.TextChars[cell.Start + cell.Length];

  44.             return lastTextChar.Bounds.Bottom - firstTextChar.Bounds.Top + cell.CellFormat.BottomTextDistance + cell.CellFormat.TopTextDistance;
  45.         }
复制代码
回复 使用道具 举报
UpLin
中级会员   /  发表于:2015-8-19 16:34:00
8#
回复 7楼Alice的帖子

版主, 说好的demo呢~
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部