找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 543|回复: 0

[表格] (XD::Table:GetMerge)获得指定索引或全部的合并的单元格范围表

[复制链接]

已领礼包: 51个

财富等级: 招财进宝

发表于 2016-7-19 00:10:36 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::Table:GetMerge
调用格式: (XD::Table:GetMerge tb inx)
参数说明: tb ------ ACAD表格实体 或 XTable实体名 或"SHEET"
inx ----- t 获得所有
整数,获得指定索引(0开始)
返回值: 表 或 NIL
函数简介: 获得指定索引或全部的合并的单元格范围表
函数来源: 原创
函数作者: Lispboy
适用版本: XDRX API 
最后更新时间: 2016-07-18
备注: 1、XTable实体,晓东API创建的表格实体(INSERT),块名称 ”XD_XTABLE-"开头,数字结尾
2、"SHEET"-- 操作内存EXCEL表

命令: (XD::TABLE:GETMERGE (entlast) t)
((0 0 0 4) (1 2 3 3))

命令: (XD::TABLE:GETMERGE (entlast) 3)
nil

命令: (XD::TABLE:GETMERGE (entlast) 1)
(1 2 3 3)
演示图片:

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 Lispboy 于 2016-7-19 00:18 编辑

  1. (defun XD::Table:GetMerge (tb inx / cols el i j lst merge mlst rows typ x)
  2.   (setq typ (XD::Table:TYPE tb))
  3.   (cond
  4.     ((= typ "X")
  5.       (setq el (xdrx_block_getentities tb))
  6.       (cond
  7.         ((= (type inx) 'INT)
  8.           (nth inx (XD::Table:getmerge tb t))
  9.         )
  10.         (t
  11.           (mapcar
  12.             '(lambda (x)
  13.                (if (= 1 (xdrx_object_getxrecord x "MergeCell"))
  14.                  (setq lst (cons (xdrx_object_getxrecord x "scope") lst))
  15.                )
  16.              )
  17.             el
  18.           )
  19.           (reverse lst)
  20.         )
  21.       )
  22.     )
  23.     ((= typ "A")
  24.       (cond
  25.         ((= (type inx) 'INT)
  26.           (nth inx (XD::Table:getmerge tb t))
  27.         )
  28.         (t
  29.           (setq rows (xdrx_table_numrows tb)
  30.                 cols (xdrx_table_numColumns tb)
  31.           )
  32.           (setq i 0
  33.                 mlst nil
  34.           )
  35.           (repeat rows
  36.             (setq j 0)
  37.             (repeat cols
  38.               (if (setq merge (xdrx_table_ismergedcell tb i j))
  39.                 (progn
  40.                   (if (not (member merge mlst))
  41.                     (setq mlst (cons merge mlst))
  42.                   )
  43.                 )
  44.               )
  45.               (setq j (1+ j))
  46.             )
  47.             (setq i (1+ i))
  48.           )
  49.           (reverse mlst)
  50.         )
  51.       )
  52.     )
  53.     ((= typ "E")
  54.       (xdex_sheet_getMergeCell inx)
  55.     )
  56.   )
  57. )


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

本版积分规则

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

GMT+8, 2024-4-23 22:40 , Processed in 0.182716 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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