六氯环己烷 发表于 2025-7-12 18:05

求好用的WPS表格导入CAD的插件

求好用的WPS表格导入CAD的插件

xxkz 发表于 2025-7-12 18:16

常青藤软件有xls-dwg这个功能

cioceo 发表于 2025-7-14 11:27

换一种方法,在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

独立勿扰 发表于 2025-7-14 13:38

其实不用插件也可以实现的。我都是复制,然后到CAD里面粘贴的。(适用于表格数量少的情况)
具体的操作方式如下:               
a. 在excel中编辑好表格,然后复制;
b. 在CAD中输入“PASTESPEC”
c.选择“链接”,“粘贴为”-->“AutoCAD 图元"
可以根据自己的需求,选择是否需要解除链接。

cioceo 发表于 2025-7-14 14:58

独立勿扰 发表于 2025-7-14 13:38
其实不用插件也可以实现的。我都是复制,然后到CAD里面粘贴的。(适用于表格数量少的情况)
具体的操作方 ...

这个方法也不错,但是“AutoCAD 图元"文字会断开,可以选"Unicode 文字",
在此基础上新编一个程序来接收剪切板的文字不知行不行,{:1_918:}
我之前的宏程序可以转微信粘贴等

cioceo 发表于 2025-7-14 17:00

复制表格
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)

独立勿扰 发表于 2025-7-15 11:55

cioceo 发表于 2025-7-14 14:58
这个方法也不错,但是“AutoCAD 图元"文字会断开,可以选"Unicode 文字",
在此基础上新编一个程序来接收 ...

编程的我还不会弄,有大佬会弄的话可以试试。

cioceo 发表于 2025-7-15 13:02

独立勿扰 发表于 2025-7-15 11:55
编程的我还不会弄,有大佬会弄的话可以试试。

下面一个程序vv可以了
页: [1]
查看完整版本: 求好用的WPS表格导入CAD的插件