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

查看 53|回复 9
作者:六氯环己烷   
xxkz   

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

换一种方法,在excel中用宏程序复制选中区域的值,再到cad中粘贴,我是这样用的
[Visual Basic] 纯文本查看 复制代码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 图元"
可以根据自己的需求,选择是否需要解除链接。
cioceo   


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

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

复制表格
cad按命令vv抓取剪切板文字
[Visual Basic] 纯文本查看 复制代码(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 文字",
在此基础上新编一个程序来接收 ...

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


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

下面一个程序vv可以了
alin12321   


cioceo 发表于 2025-7-15 13:02
下面一个程序vv可以了

这个VV是什么插件?
cioceo   


alin12321 发表于 2025-8-22 18:04
这个VV是什么插件?

cad ;lisp插件
您需要登录后才可以回帖 登录 | 立即注册

返回顶部