求好用的WPS表格导入CAD的插件
求好用的WPS表格导入CAD的插件 常青藤软件有xls-dwg这个功能 换一种方法,在excel中用宏程序复制选中区域的值,再到cad中粘贴,我是这样用的Sub 复制表格值()
Dim selectedRange As Range, data As Variant, result() As String
Dim lastRow As Long, lastCol As Long, i As Long, j As Long
Dim ws As Worksheet
' 检查选择区域并优化范围
On Error Resume Next
Set selectedRange = Selection
Set ws = selectedRange.Parent
On Error GoTo 0
If selectedRange Is Nothing Then
MsgBox "请先选择要复制的单元格", vbExclamation, "无选择区域"
Exit Sub
End If
' 自动检测数据区域(当全表选择时)
If selectedRange.Rows.Count = ws.Rows.Count And selectedRange.Columns.Count = ws.Columns.Count Then
lastRow = ws.Cells.Find("*", , , , xlByRows, xlPrevious).Row
lastCol = ws.Cells.Find("*", , , , xlByColumns, xlPrevious).Column
If lastRow = 0 Or lastCol = 0 Then
MsgBox "工作表中没有数据", vbExclamation, "无数据"
Exit Sub
End If
Set selectedRange = ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol))
End If
' 读取数据到数组(大幅提升性能)
data = selectedRange.Value
ReDim result(1 To UBound(data, 1))
' 处理数据并构建结果
For i = 1 To UBound(data, 1)
For j = 1 To UBound(data, 2)
If IsEmpty(data(i, j)) Then data(i, j) = ""
result(i) = result(i) & IIf(j > 1, Chr(9), "") & data(i, j)
Next j
Next i
' 复制到剪贴板
With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.SetText Join(result, Chr(13) & Chr(10))
.PutInClipboard
End With
'MsgBox "已复制: " & UBound(data, 1) & "行, " & UBound(data, 2) & "列", vbInformation, "操作成功"
End Sub 其实不用插件也可以实现的。我都是复制,然后到CAD里面粘贴的。(适用于表格数量少的情况)
具体的操作方式如下:
a. 在excel中编辑好表格,然后复制;
b. 在CAD中输入“PASTESPEC”
c.选择“链接”,“粘贴为”-->“AutoCAD 图元"
可以根据自己的需求,选择是否需要解除链接。 独立勿扰 发表于 2025-7-14 13:38
其实不用插件也可以实现的。我都是复制,然后到CAD里面粘贴的。(适用于表格数量少的情况)
具体的操作方 ...
这个方法也不错,但是“AutoCAD 图元"文字会断开,可以选"Unicode 文字",
在此基础上新编一个程序来接收剪切板的文字不知行不行,{:1_918:}
我之前的宏程序可以转微信粘贴等 复制表格
cad按命令vv抓取剪切板文字
(defun c:vv (/ wz pt width height endpt)
(vl-load-com)
(setvar 'cmdecho 0)
; 获取剪贴板文本
(setq wz (l-jtbd))
(if (and wz (/= wz ""))
(progn
(if (setq pt (getpoint "\n请指定文字插入点: "))
(progn
; 根据文字数量估算宽度和高度
(setq width (* (length (vl-string->list wz)) 2.5)
height (- (* (length (vl-remove-if-not '(lambda (c) (= c 10)) (vl-string->list wz))) 5.8))
endpt (mapcar '+ pt (list width height)))
(command "MTEXT" pt endpt wz "")
)))
(princ "\n剪贴板中没有可用文本")
)
(setvar 'cmdecho 1)
(princ)
)
; 剪贴板文本读取函数
(defun l-jtbd(/ t1 t2)
(and
(setq t1 (vlax-create-object "htmlfile"))
(setq t2 (vlax-invoke (vlax-get (vlax-get t1 'PARENTWINDOW) 'CLIPBOARDDATA)
'GETDATA "Text"))
(vlax-release-object t1)
)
t2
)
(princ) cioceo 发表于 2025-7-14 14:58
这个方法也不错,但是“AutoCAD 图元"文字会断开,可以选"Unicode 文字",
在此基础上新编一个程序来接收 ...
编程的我还不会弄,有大佬会弄的话可以试试。 独立勿扰 发表于 2025-7-15 11:55
编程的我还不会弄,有大佬会弄的话可以试试。
下面一个程序vv可以了
页:
[1]