TX表格疑问
您好;在我试用TX的过程中发现几个问题:
1.
如附件《1.doc》中的表格,在word中是正常的左边一个表格,右边一个表格,但通过TX加载,再保存后格式就完全走样了,两个表格成一个了,结果如《2.doc》;
2.
对于表格的ID,好像TX和Word也是完全不一样的处理方式,在Word中一个表格不管内部有没有合并,它的ID是不变的,通过这个ID可以遍历它的所有单元格(包括合并的);但是在TX中,我发现只要表格某行的列数发生变化了(如有合并等),那该行就会启用新的ID,这样在使用中,虽然看上去还是一个表格,但很难通过ID去遍历所有单元格了,因为这个表格实际上已经是具有N个ID的N个表格了;
3. 对于嵌套表格也完全走样。
另:《2.doc》是由《1.doc》通过Form1.frm 中的代码得到的。
总的来说TX功能不错,但上面3个问题一直困扰着我,使我一直在犹豫要不要选择TX。 你好,在Word和TX中一行都只能插入一个表格,而Word中的表格是可以随意拖动的,所以,一行就可以放两个表格,像这种通过拖动之后的布局TX还是会依照一行只有一个表格的原则进行布局,也就是你看到的左右表格的布局被修改了。
回复 2# dof 的帖子
那关于 表格ID 的第二个问题呢?我怎么遍历这个有合并的表格?回复 3# roc_hover 的帖子
遍历有单元格合并的表格需要判断单元格的length是否为-1,为-1说明该单元格被合并了:for (int row = 1; row <= textControl1.Tables.GetItem().Rows.Count; row++)
{
for (int col = 1; col <= textControl1.Tables.GetItem().Columns.Count; col++)
{
if (textControl1.Tables.GetItem().Cells.GetItem(row,col).Length != -1)
{
textControl1.Tables.GetItem().Cells.GetItem(row, col).Text = String.Format("({0},{1})",row,col);
}
}
}
同时可以通过以上属性来判断当前表格的嵌套关系:NestedLevel、NestedTables、OuterMostTable、OuterTable 可问题是在Word中本来是一个表格(虽然有合并,可还是一个ID),可以通过一个ID就能遍历所有Cell了,可是在TX中,因为有了合并,这个表格实际上已经让TX武断的分成了具有N个ID的N个表格了,我怎么才能遍历这些表格呢?头痛的是ID不唯一了呀,我甚至连这个表格现在对应几个ID都不确定,我怎么去遍历?
版主别告诉我一个ID一个ID的去遍历,即使这样,那还是相对于Word中少了一个信息,本来Word中是一个ID的,我知道通过这个ID就能遍历,可现在分成了N个,我怎么知道TX是分成了N-1个还是N+1个?怎么去遍历? 急!急!急! :L 我觉得TX在某些方面还是挺好的,比如查找替换速度等,还有不需要像Word一样安装一大堆VBA组件支持环境,发布程序时很轻松,这些都是看好TX的地方;
可是在表格方面TX确实太糟糕,也许是我先用过Word的原因吧,我觉得TX在表格方面应该好好解剖,学习学习Word,我提的这几个问题都应该是很实用的呀,就没别人提? 你说的很对。TX由于要支持Word和PDF,在设计上需要兼顾两种截然不同的格式,因此在Table的支持上与Word存在差异,我们可以向产品团队反馈。不过能否向Word靠拢,何时能有更符合你需求的改进,我们暂时无法给出具体的时间表。
以目前的情况来看,表格的遍历是你最关心的问题。你可以在TextControl.Tables中拿到所有的表格,然后遍历修改。当然,遍历过程很可能比较痛苦,因为ID的变化,很难准确知道要改的数据在哪一个ID的某行某列。这就需要在遍历的时候,同时还要验证内容,确定是要修改的数据后,再做修改。
如果你的需求中,大部分需要表格,或者表格的功能需求占主要部分,可以尝试Spread产品。它是专业的表格控件,与Excel兼容。界面、接口和操作都与Excel相似。也许更能满足你的需求。 强烈建议TX在新版本中增加上面提到的表格遍历问题。
页:
[1]