本帖最后由 biya 于 2025-3-13 08:18 编辑

此源代码为DEEPSEEK多次调试+人为干预提示调试出的作品,暂时未合并单元格处理,未提取原表格背景色,抛砖引玉,大家可以超越,加油!!
网友答: 使用 datalink 的excel 数据 ,直接创建出 table 对象。
目前存在的问题主要是:table的尺寸大小不好控制,数据格式也存在一定的差异导致需要调整,最大的问题实际上在于后续的excel修改后,table中的数据更新时非常卡顿,且在增减行列后出现期望之外的结果。
这个问题我已经反馈给开发团队了,希望后续能尽快修正与改进。网友答:
大佬,使用datalink 的时候,怎么获得 链接的选项?链接的选项对应着不同的工作表网友答:
你这个侧边栏是原创的吗?眼馋了网友答: 历害,太历害啦网友答: 选择文档了没反应 显示函数已取消网友答:
我是OFFICE,你的是WPS?,奇怪网友答: 之前用DEEPSEEK尝试写一个调整TABLE表行高列宽的插件,写出来的插件运行不成功,
看不懂写的代码。网友答:
我用的是WPS网友答:
你用OFFICE试一下可能就好了,或你改一下代码支持WPS
,我最近有点忙,闲了来改一下网友答: 现在有AI真的是强大,学习学习网友答:
你这头像碉堡了

- (defun c:tt (/ excel-app excel-file excel-workbook excel-sheet excel-range row-count col-count data row col pt table cell-value)
- ;; 提示用户选择Excel文件
- (setq excel-file (getfiled "选择Excel文件" "" "xlsx;xls" 16))
- (if (not excel-file)
- (progn
- (princ "\n未选择文件。")
- (exit)
- )
- )
- ;; 启动Excel应用程序
- (setq excel-app (vlax-get-or-create-object "Excel.Application"))
- (vlax-put-property excel-app 'Visible :vlax-false) ;; 不显示Excel窗口
- ;; 打开Excel文件
- (setq excel-workbook (vlax-invoke-method (vlax-get-property excel-app 'Workbooks) 'Open excel-file))
- (setq excel-sheet (vlax-get-property (vlax-get-property excel-workbook 'Sheets) 'Item 1)) ;; 选择第一个工作表
- ;; 获取Excel数据的范围
- (setq excel-range (vlax-get-property excel-sheet 'UsedRange))
- (setq row-count (vlax-get-property (vlax-get-property excel-range 'Rows) 'Count)) ;; 获取行数
- (setq col-count (vlax-get-property (vlax-get-property excel-range 'Columns) 'Count)) ;; 获取列数
- ;; 读取Excel数据
- (setq data (vlax-safearray->list (vlax-variant-value (vlax-get-property excel-range 'Value2))))
- ;; 关闭Excel文件并退出Excel应用程序
- (vlax-invoke-method excel-workbook 'Close :vlax-false)
- (vlax-invoke-method excel-app 'Quit)
- (vlax-release-object excel-app)
- ;; 提示用户选择插入点
- (setq pt (getpoint "\n选择表格插入点: "))
- (if (not pt)
- (progn
- (princ "\n未选择插入点。")
- (exit)
- )
- )
- ;; 创建表格
- (setq table (vla-addtable
- (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
- (vlax-3d-point (car pt) (cadr pt) 0.0) ;; 插入点(三维点)
- (1+ row-count) ;; 行数(包括标题行)
- col-count ;; 列数
- 10.0 ;; 行高
- 50.0 ;; 列宽
- )
- )
- ;; 填充表格数据
- (setq row 0)
- (foreach line data
- (setq col 0)
- (foreach cell line
- ;; 处理空值或非字符串数据
- (setq cell-value
- (cond
- ((null cell) "") ;; 空值
- ((= (type cell) 'VARIANT)
- (vl-catch-all-apply 'vlax-variant-value (list cell))) ;; VARIANT类型
- ((= (type cell) 'REAL) (rtos cell 2 2)) ;; 实数类型
- ((= (type cell) 'INT) (itoa cell)) ;; 整数类型
- (t (vl-princ-to-string cell)) ;; 其他类型
- )
- )
- ;; 确保单元格值不为空
- (if (and cell-value (/= cell-value ""))
- (vla-settext table row col cell-value)
- )
- (setq col (1+ col))
- )
- (setq row (1+ row))
- )
- (princ "\nExcel表格已成功插入到AutoCAD中。")
- (princ)
- )
此源代码为DEEPSEEK多次调试+人为干预提示调试出的作品,暂时未合并单元格处理,未提取原表格背景色,抛砖引玉,大家可以超越,加油!!
网友答: 使用 datalink 的excel 数据 ,直接创建出 table 对象。
目前存在的问题主要是:table的尺寸大小不好控制,数据格式也存在一定的差异导致需要调整,最大的问题实际上在于后续的excel修改后,table中的数据更新时非常卡顿,且在增减行列后出现期望之外的结果。
这个问题我已经反馈给开发团队了,希望后续能尽快修正与改进。网友答:
e2002 发表于 2025-3-13 19:59
使用 datalink 的excel 数据 ,直接创建出 table 对象。
目前存在的问题主要是:table的尺寸大小不好控制 ...
大佬,使用datalink 的时候,怎么获得 链接的选项?链接的选项对应着不同的工作表网友答:
lea丶丶 发表于 2025-4-16 17:29
(setq *xlApp* (vlax-get-or-create-object "excel.Application")) 读取excel
(setq *xlApp* (vlax-get-or ...
你这个侧边栏是原创的吗?眼馋了网友答: 历害,太历害啦网友答: 选择文档了没反应 显示函数已取消网友答:
pizi158545086 发表于 2025-3-13 10:45
选择文档了没反应 显示函数已取消
我是OFFICE,你的是WPS?,奇怪网友答: 之前用DEEPSEEK尝试写一个调整TABLE表行高列宽的插件,写出来的插件运行不成功,
看不懂写的代码。网友答:
biya 发表于 2025-3-13 11:19
我是OFFICE,你的是WPS?,奇怪
我用的是WPS网友答:
pizi158545086 发表于 2025-3-13 12:32
我用的是WPS
你用OFFICE试一下可能就好了,或你改一下代码支持WPS
,我最近有点忙,闲了来改一下网友答: 现在有AI真的是强大,学习学习网友答:
qincccken 发表于 2025-3-16 00:06
现在有AI真的是强大,学习学习
你这头像碉堡了