明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1451|回复: 13

[资源] (Deepseek训练作品)excel生成cad中TABLE表的源代码

[复制链接]
发表于 2025-3-13 08:12:34 | 显示全部楼层 |阅读模式
本帖最后由 biya 于 2025-3-13 08:18 编辑
  1. (defun c:tt (/ excel-app excel-file excel-workbook excel-sheet excel-range row-count col-count data row col pt table cell-value)
  2.   ;; 提示用户选择Excel文件
  3.   (setq excel-file (getfiled "选择Excel文件" "" "xlsx;xls" 16))
  4.   (if (not excel-file)
  5.     (progn
  6.       (princ "\n未选择文件。")
  7.       (exit)
  8.     )
  9.   )

  10.   ;; 启动Excel应用程序
  11.   (setq excel-app (vlax-get-or-create-object "Excel.Application"))
  12.   (vlax-put-property excel-app 'Visible :vlax-false)  ;; 不显示Excel窗口

  13.   ;; 打开Excel文件
  14.   (setq excel-workbook (vlax-invoke-method (vlax-get-property excel-app 'Workbooks) 'Open excel-file))
  15.   (setq excel-sheet (vlax-get-property (vlax-get-property excel-workbook 'Sheets) 'Item 1))  ;; 选择第一个工作表

  16.   ;; 获取Excel数据的范围
  17.   (setq excel-range (vlax-get-property excel-sheet 'UsedRange))
  18.   (setq row-count (vlax-get-property (vlax-get-property excel-range 'Rows) 'Count))  ;; 获取行数
  19.   (setq col-count (vlax-get-property (vlax-get-property excel-range 'Columns) 'Count))  ;; 获取列数



  20.   ;; 读取Excel数据
  21.   (setq data (vlax-safearray->list (vlax-variant-value (vlax-get-property excel-range 'Value2))))

  22.   ;; 关闭Excel文件并退出Excel应用程序
  23.   (vlax-invoke-method excel-workbook 'Close :vlax-false)
  24.   (vlax-invoke-method excel-app 'Quit)
  25.   (vlax-release-object excel-app)

  26.   ;; 提示用户选择插入点
  27.   (setq pt (getpoint "\n选择表格插入点: "))
  28.   (if (not pt)
  29.     (progn
  30.       (princ "\n未选择插入点。")
  31.       (exit)
  32.     )
  33.   )

  34.   ;; 创建表格
  35.   (setq table (vla-addtable
  36.                 (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
  37.                 (vlax-3d-point (car pt) (cadr pt) 0.0)  ;; 插入点(三维点)
  38.                 (1+ row-count)  ;; 行数(包括标题行)
  39.                 col-count      ;; 列数
  40.                 10.0          ;; 行高
  41.                 50.0          ;; 列宽
  42.               )
  43.   )

  44.   ;; 填充表格数据
  45.   (setq row 0)
  46.   (foreach line data
  47.     (setq col 0)
  48.     (foreach cell line
  49.       ;; 处理空值或非字符串数据
  50.       (setq cell-value
  51.         (cond
  52.           ((null cell) "")  ;; 空值
  53.           ((= (type cell) 'VARIANT)
  54.             (vl-catch-all-apply 'vlax-variant-value (list cell)))  ;; VARIANT类型
  55.           ((= (type cell) 'REAL) (rtos cell 2 2))  ;; 实数类型
  56.           ((= (type cell) 'INT) (itoa cell))  ;; 整数类型
  57.           (t (vl-princ-to-string cell))  ;; 其他类型
  58.         )
  59.       )
  60.       ;; 确保单元格值不为空
  61.       (if (and cell-value (/= cell-value ""))
  62.         (vla-settext table row col cell-value)
  63.       )
  64.       (setq col (1+ col))
  65.     )
  66.     (setq row (1+ row))
  67.   )

  68.   (princ "\nExcel表格已成功插入到AutoCAD中。")
  69.   (princ)
  70. )


此源代码为DEEPSEEK次调试+人为干预提示调试出的作品,暂时未合并单元格处理,未提取原表格背景色,抛砖引玉,大家可以超越,加油!!

本帖子中包含更多资源

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

x

评分

参与人数 1明经币 +1 收起 理由
gaolei_gaolei + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

发表于 2025-3-13 19:59:14 | 显示全部楼层
使用 datalink 的excel 数据 ,直接创建出 table 对象。
目前存在的问题主要是:table的尺寸大小不好控制,数据格式也存在一定的差异导致需要调整,最大的问题实际上在于后续的excel修改后,table中的数据更新时非常卡顿,且在增减行列后出现期望之外的结果。

这个问题我已经反馈给开发团队了,希望后续能尽快修正与改进。
回复 支持 反对

使用道具 举报

发表于 2025-3-20 10:33:17 | 显示全部楼层
这个功能挺好的,源泉工具箱有这个命令E2T,但都会产生一个问题,就是行高和行宽会失调,就如同比亚发的这个,显得很扁平,需要人为修改才能放在图纸里用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-13 19:20:30 | 显示全部楼层

你用OFFICE试一下可能就好了,或你改一下代码支持WPS
,我最近有点忙,闲了来改一下
回复 支持 反对

使用道具 举报

发表于 2025-3-13 08:49:36 | 显示全部楼层
历害,太历害啦
回复 支持 反对

使用道具 举报

发表于 2025-3-13 10:45:34 | 显示全部楼层
选择文档了没反应  显示函数已取消
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-3-13 11:19:13 | 显示全部楼层
pizi158545086 发表于 2025-3-13 10:45
选择文档了没反应  显示函数已取消

我是OFFICE,你的是WPS?,奇怪
回复 支持 反对

使用道具 举报

发表于 2025-3-13 11:52:49 | 显示全部楼层
之前用DEEPSEEK尝试写一个调整TABLE表行高列宽的插件,写出来的插件运行不成功,看不懂写的代码。
回复 支持 反对

使用道具 举报

发表于 2025-3-13 12:32:05 | 显示全部楼层
biya 发表于 2025-3-13 11:19
我是OFFICE,你的是WPS?,奇怪

我用的是WPS
回复 支持 反对

使用道具 举报

发表于 2025-3-16 00:06:55 | 显示全部楼层
现在有AI真的是强大,学习学习
回复 支持 反对

使用道具 举报

发表于 2025-3-16 18:36:48 | 显示全部楼层
qincccken 发表于 2025-3-16 00:06
现在有AI真的是强大,学习学习

你这头像碉堡了
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-4-2 19:23 , Processed in 0.173632 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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