QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
7天前
查看: 4510|回复: 11
收起左侧

[已解决] 如何一次性提取多行文字内的所有文字

 关闭 [复制链接]
发表于 2008-7-18 11:52:53 | 显示全部楼层 |阅读模式 来自: 中国福建三明

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
一DWG格式图纸,内有众多的多行文字,如果用复制.粘贴的办法是可以提取多行文字内的文字,但太慢了,不知有没什么办法; r9 p* g* _! Y

) y  a0 Y! X, t" I* d$ k7 G% S[ 本帖最后由 wsj249201 于 2008-7-19 08:34 编辑 ]
发表于 2008-7-18 13:28:24 | 显示全部楼层 来自: 中国四川成都
要看你往什么地方提,提来干嘛,OK?
发表于 2008-7-18 13:40:52 | 显示全部楼层 来自: 中国浙江台州
文字单独设图层. n& f: ?' f$ _/ A; f
屏蔽其他图层就可以快速提取所有文字了
 楼主| 发表于 2008-7-18 13:49:32 | 显示全部楼层 来自: 中国福建三明
我的目地是EXCEL。但只要能至TXT之类就都好办了,三楼的可否讲如何操作
发表于 2008-7-18 13:50:41 | 显示全部楼层 来自: 中国浙江宁波
“工具”菜单里,选择“数据提取”;可以提取到excel

评分

参与人数 1三维币 +5 收起 理由
woaishuijia + 5 应助

查看全部评分

 楼主| 发表于 2008-7-18 14:00:44 | 显示全部楼层 来自: 中国福建三明
楼上的,那只能提取块里的数据,不能提提取多行文字里的数据
发表于 2008-7-18 14:44:55 | 显示全部楼层 来自: 中国江苏苏州
用特定对象选择,只选择文本2 X: k# S  W/ L! L7 b& M# U7 l9 _
来进行提取
 楼主| 发表于 2008-7-18 16:48:31 | 显示全部楼层 来自: 中国福建三明
我这是2004版的CAD。没有你们讲的数据提取功能,我把属性提取看成数据提取了
发表于 2008-7-18 18:35:12 | 显示全部楼层 来自: 中国辽宁鞍山
数据提取功能一样适用于多行文字,楼上的可以试试
 楼主| 发表于 2008-7-18 19:01:08 | 显示全部楼层 来自: 中国福建三明
我这是2004版的CAD。找不到你们讲的数据提取功能
发表于 2008-7-19 00:01:06 | 显示全部楼层 来自: 中国

回复 10# 的帖子

可以用二次开发功能编程提取。以下是VBA例程:% P: A, y! z- |  z0 B% o. F0 j

* U' U1 A3 V/ y% H2 [* J  K/ L$ T5 H-----------------------------------------------------------) A1 J" l' C1 Q& K/ K: n) o
Sub TQ()5 n9 Y, P. k. F
    On Error Resume Next3 v$ @% p, ]) I* O7 M/ H
    Dim I As Integer
0 f  M3 z7 W* V+ F    Dim E As Excel.Application, B As Workbook, S As Worksheet  U2 |/ i0 p1 z# Q0 J8 `
    Dim SS As AcadSelectionSet, T As Object, FT(3) As Integer, FD(3) As Variant! _! V2 u' B* x: A
    '下面定义选择集过滤器列表为多行文字或单行文字
6 y! V: \+ G9 W/ g. q    FT(0) = -4: FD(0) = "<or"1 h- y0 q6 Z- w! ]) V
    FT(1) = 0: FD(1) = "mtext"8 C0 `# X! S2 C! D( Y
    FT(2) = 0: FD(2) = "text"% m" @0 Y& h( g2 C
    FT(3) = -4: FD(3) = "or>"& I* d- Q1 ^: N4 |
    '创建选择集
7 N; J# R7 U) h8 G+ Y- h    Set SS = ThisDrawing.SelectionSets.Add("SS")
5 q& ?6 b8 F) O* p    '在屏幕上选择多行文字或单行文字对象
+ Q5 A' P/ z4 ^# m1 E' o; q7 D    SS.SelectOnScreen FT, FD
* T/ j8 N9 y. n/ s     '如果选择集不为空则运行以下代码$ r* ^) o- \. b
    If SS.Count > 0 Then/ _: Y0 E) W  i( H; s5 \2 f' i
        '运行EXCEL程序
3 L3 M/ `; ]+ [5 H! B$ B+ |        Set E = New Excel.Application- Y6 _* a2 [' p; V9 u
        '在EXCEL中插入工作薄0 a3 w, T) ^8 @1 I+ ?: b; K
        Set B = E.Workbooks.Add4 l7 o6 V, e( {. O/ \
        '定义工作表
; l' e! r, V8 {& b8 C* P/ v& F        Set S = B.ActiveSheet
* d* _* X, s# U        '显示EXCEL程序
2 ]7 t' g  X6 n% S        E.Visible = True
4 l. \* X( J. v1 M3 j8 e: I         '遍历选择集并处理被选中的单行文字或多行文字对象
. `1 m4 k) z/ y        For Each T In SS
7 g. A. E% i" ]' O  |8 ~' B            I = I + 1
5 K4 z: z& s5 }: P/ a            '把单行文字或多行文字的内容写入表格
$ r# @* u6 p. @( Z2 x' M            '对于多行文字,如果直接写入则字符串中很可能包含转义符,使用者可根据需要对字符串运算处理后再写入表格
( @% J" w% D4 ]9 z+ v            S.Cells(I, 1).Value = T.TextString$ N: M8 N3 h7 }/ Y& E
        Next
7 y, |: G. |, x# r7 G; r. q0 l    End If
; F6 v# U6 u/ X+ k6 p    SS.Delete '删除用过的选择集
5 {$ R' r( ^4 f1 f2 o5 dEnd Sub. O: O! C5 s! R3 a
-----------------------------------------------------------------
- f+ @. _% |5 {5 r7 F; y# E7 V8 x% L7 t; b! V# v
“Alt+F11”打开VBA编辑器,将以上代码复制粘贴到thisdrawing对象代码窗口,在“工具”菜单下点“引用”,选择EXCEL类库(名称与EXCEL版本有关,如EXCEL2000为“Microsoft Excel 9.0 Object Library”),确定后即可使用。' X/ \# T3 @+ ?' l, y

3 ~7 q! O+ k1 v7 O' |$ S& {[ 本帖最后由 woaishuijia 于 2008-7-19 02:39 编辑 ]

评分

参与人数 1三维币 +15 收起 理由
wsj249201 + 15 应助

查看全部评分

 楼主| 发表于 2008-7-19 06:51:45 | 显示全部楼层 来自: 中国福建三明
我爱谁家真是高手,很感谢,实现了目标。看来也要学点VBA
  p$ l! T" f. H0 F5 k楼上还搞到这么晚,辛苦了(应该今天不用上班了吧),再一次多谢了" h7 d4 Y, f( u- c# F$ L
8 A, E/ y7 j; v( L2 s) o
[ 本帖最后由 fsj 于 2008-7-19 06:53 编辑 ]

评分

参与人数 1三维币 +1 收起 理由
wsj249201 + 1 感谢你对问题的及时查看并回复说明!

查看全部评分

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

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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