找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: XDSoft

[研讨] 关于表格合并单元格的问题,大家探讨下。

[复制链接]

已领礼包: 3884个

财富等级: 富可敌国

发表于 2013-7-4 18:57:09 | 显示全部楼层
XDSoft 发表于 2013-7-4 18:30
如何判断是否指向同一个单元格?

我上面有点没说明白,xi yi就是通过方框左下点和表格右上点之间的相对关系来计算此方框在表格的(xi+1)列和yi行
xa ya就是通过方框的右上点和表格的右上点的相对关系来计算此方框在表格的(xa+1)列和ya行
如果xi=xa,而且yi=ya,那么此方框就是非合并单元格,否则就是合并单元格。

点评

问题主要集中在合并的单元格上,如果判定这个单元格到底合并了哪几个正常的单元格?行的方向合并了几个,列的方向又合并了几个?  详情 回复 发表于 2013-7-4 19:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-7-4 19:02:06 | 显示全部楼层
ayl1004 发表于 2013-7-4 18:57
我上面有点没说明白,xi yi就是通过方框左下点和表格右上点之间的相对关系来计算此方框在表格的(xi+1)列 ...

问题主要集中在合并的单元格上,如果判定这个单元格到底合并了哪几个正常的单元格?行的方向合并了几个,列的方向又合并了几个?

点评

老大,晕啊 xi yi xa ya 这四个整数不刚好说明了这个问题吗? 比如:xi=1 yi=4 => 地址 "B4" xa=1 ya=7 => 地址 "B7" 这总该明白了吧  详情 回复 发表于 2013-7-4 19:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-7-4 19:03:11 | 显示全部楼层
守仁格竹GM 发表于 2013-7-4 18:32
假如出现不完全重复的线呢,一个长一个短重复

画个表格,贴个图上来吧。

点评

比如类似红色箭头位置画一条直线段  详情 回复 发表于 2013-7-5 08:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3884个

财富等级: 富可敌国

发表于 2013-7-4 19:07:09 | 显示全部楼层
XDSoft 发表于 2013-7-4 19:02
问题主要集中在合并的单元格上,如果判定这个单元格到底合并了哪几个正常的单元格?行的方向合并了几个, ...

老大,晕啊
xi yi xa ya 这四个整数不刚好说明了这个问题吗?
比如:xi=1 yi=4 => 地址 "B4"
          xa=1 ya=7 => 地址 "B7"
这总该明白了吧

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1757个

财富等级: 堆金积玉

发表于 2013-7-5 08:03:13 | 显示全部楼层
XDSoft 发表于 2013-7-4 19:03
画个表格,贴个图上来吧。

比如类似红色箭头位置画一条直线段
RTX截图未命名.png

点评

你这是没有困难也要创造困难啊,手动清理下  详情 回复 发表于 2013-7-5 12:40
处理表格前,要消除重线,最大限度的保证数据的稳定可靠。 如果硬要断开,或者不在一条线上的接近的线段,那就是画表格的人的事情了。  详情 回复 发表于 2013-7-5 11:57
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-7-5 09:17:06 | 显示全部楼层
我的看法是这样,主要要分两种情况,其一是自己制定规则,其二是尊重别人的习惯。
作为独立的API,制定自己的规则是可行的,就是把表格赋予一定的特性,比如扩展数据,随后用一整套的表格管理命令来管理,这样,所有的表格操作,乃至表格中数据的操作都尽在掌握中,相对容易一些,剩下的,就是把用户自己的表格(或线条、文字等)转换加入这个表格“组”中了。
一般情况下,编程应该尊重用户的习惯(同时,一个好的程序也会间接地规范用户的习惯),从这一点出发,就必须考虑对用户自己随意制作的表格进行操作(这也是前一条的基础),这里不仅仅要考虑那些封闭的“合并”,也要考虑那些制图不太规范(或其它原因)造成的“模糊”表格,看zml84的演示和牢固版主的返回值,似乎都是趋于对表格包围区域的判别,在这种情况下,尤其需要注意那些“模糊闭合”的表格。
我认为,不仅可以通过单元格来判别,也可以通过线条来判别,找出包围盒中最长的横竖线条,然后其它线条和他们比较,确定这些线条的位置,从而判断出对应单元格的情况。
已经没精力写程序了,只能提供些不成熟的思路,望能有些许用途。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-7-5 09:38:48 | 显示全部楼层
对于格子有间隙的情况,可以用下述方法来实现单元格的搜索:1、通过选择表格线,按给定的容差值,计算出所有单元格的水平坐标(x1 x2 x3 ...)从小到大排列,纵向坐标 (y1 y2 y3...)从大到小排列,这就得到了所有单元格的坐标
2、逐一对所有单元格进行边界搜索,来判断该单元格是否为合并单元格,并计算出范围。搜索的方法采用射线法,即在单元格中心位置向上下左右四个方向绘制射线,在方向上相交的第一条线即是该单元的边界线,四个方向全部搜索完毕后,即得到该单元格的范围。
3、全部单元格搜索完成后,删除结果中重复的单元格,即得到最终结果!

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-7-5 10:12:18 | 显示全部楼层
1 用ARX保证没有悬空点
2 交点断开,生成Region,这些可以用ARX生成“虚实体”以提高效率
3 以Region的左上角点和 宽、高 定位格子,与分行高、分列宽对比确定是否合并
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-7-5 11:57:42 | 显示全部楼层
守仁格竹GM 发表于 2013-7-5 08:03
比如类似红色箭头位置画一条直线段

处理表格前,要消除重线,最大限度的保证数据的稳定可靠。

如果硬要断开,或者不在一条线上的接近的线段,那就是画表格的人的事情了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-7-5 12:40:06 | 显示全部楼层
守仁格竹GM 发表于 2013-7-5 08:03
比如类似红色箭头位置画一条直线段

你这是没有困难也要创造困难啊,手动清理下

点评

实际操作 出现过这种情况,而且不是偶然。事先需要个清理的查件 最好了  详情 回复 发表于 2013-7-5 12:54
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1757个

财富等级: 堆金积玉

发表于 2013-7-5 12:54:50 | 显示全部楼层
Free-Lancer 发表于 2013-7-5 12:40
你这是没有困难也要创造困难啊,手动清理下


实际操作 出现过这种情况,而且不是偶然。事先需要个清理的插件 最好了

点评

你画的是个偏移线,和重线不是一个概念  详情 回复 发表于 2013-7-5 13:38
如果要写这个插件,你需要提供个规则。  详情 回复 发表于 2013-7-5 13:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-7-5 13:17:50 | 显示全部楼层
守仁格竹GM 发表于 2013-7-5 12:54
实际操作 出现过这种情况,而且不是偶然。事先需要个清理的插件 最好了

如果要写这个插件,你需要提供个规则。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-7-5 13:38:36 | 显示全部楼层
守仁格竹GM 发表于 2013-7-5 12:54
实际操作 出现过这种情况,而且不是偶然。事先需要个清理的插件 最好了

你画的是个偏移线,和重线不是一个概念
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 244个

财富等级: 日进斗金

发表于 2021-8-24 10:19:26 | 显示全部楼层
楼主威武   犇 犇 犇
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-22 08:11 , Processed in 0.399433 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表