QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 4434|回复: 11
收起左侧

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

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

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

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

x
一DWG格式图纸,内有众多的多行文字,如果用复制.粘贴的办法是可以提取多行文字内的文字,但太慢了,不知有没什么办法6 [, P. z) O# Q  s
7 Z3 A# A7 I1 h
[ 本帖最后由 wsj249201 于 2008-7-19 08:34 编辑 ]
发表于 2008-7-18 13:28:24 | 显示全部楼层 来自: 中国四川成都
要看你往什么地方提,提来干嘛,OK?
发表于 2008-7-18 13:40:52 | 显示全部楼层 来自: 中国浙江台州
文字单独设图层4 e3 G$ t- C- Q5 ?6 ^
屏蔽其他图层就可以快速提取所有文字了
 楼主| 发表于 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 | 显示全部楼层 来自: 中国江苏苏州
用特定对象选择,只选择文本3 z9 [" _4 k7 w: @/ O# D; `( U
来进行提取
 楼主| 发表于 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例程:
) T* T& |' V3 f- e- w. i9 K' q0 K; {
-----------------------------------------------------------
! m% h  M$ S, n* V' jSub TQ()
& W  n/ p% A- I3 M7 K- z9 B; C    On Error Resume Next
* J. f: @# H1 R; Z' U    Dim I As Integer
0 x- r( Y3 n% J, r" }& ^: B  L3 e6 {    Dim E As Excel.Application, B As Workbook, S As Worksheet
, b. L; u9 N5 [# c7 S+ V    Dim SS As AcadSelectionSet, T As Object, FT(3) As Integer, FD(3) As Variant+ B$ Q! o4 N& e4 T' b
    '下面定义选择集过滤器列表为多行文字或单行文字
( R1 L  i+ @# h/ K5 `( a    FT(0) = -4: FD(0) = "<or"0 D% p/ T- u$ T( k9 D$ A" ^# G
    FT(1) = 0: FD(1) = "mtext"9 D# `# s4 ]& X4 v! n( ]
    FT(2) = 0: FD(2) = "text"- {% W, }) U8 ]* q
    FT(3) = -4: FD(3) = "or>"
# B& J8 ?& m0 b; q, ~* K# c7 \    '创建选择集
4 o4 F: f# ?% f' w    Set SS = ThisDrawing.SelectionSets.Add("SS")$ F1 u" R( y* K! F7 G: u
    '在屏幕上选择多行文字或单行文字对象
# _, W8 z; _* {* q    SS.SelectOnScreen FT, FD) H8 R8 M4 O3 E
     '如果选择集不为空则运行以下代码
4 G+ s3 i  k& C) m( `: w2 w    If SS.Count > 0 Then3 P' F  {& `7 x3 Z+ O6 z
        '运行EXCEL程序
  h+ t- F9 z6 v' A% l  e- w- X# {        Set E = New Excel.Application1 e2 C9 N' Y8 _+ {
        '在EXCEL中插入工作薄1 P2 r7 a# \# h0 o+ h  A, u
        Set B = E.Workbooks.Add* A' \8 K6 A& F( C# y' n
        '定义工作表
% |9 E3 w" l, ?% S6 Y+ u        Set S = B.ActiveSheet/ `. P0 U  C; S9 ~
        '显示EXCEL程序
: i/ N+ j1 R) \/ s        E.Visible = True
5 H0 v' [4 X, S% Y5 J# A. _5 y         '遍历选择集并处理被选中的单行文字或多行文字对象3 `( H$ X! f, D: y
        For Each T In SS4 t8 y4 N7 d1 G& h& i) x  \
            I = I + 1
0 E3 P1 K/ r, z$ ^1 r) L            '把单行文字或多行文字的内容写入表格
$ y8 {" ?$ @  j6 b: \            '对于多行文字,如果直接写入则字符串中很可能包含转义符,使用者可根据需要对字符串运算处理后再写入表格! w, m$ K- ^7 @
            S.Cells(I, 1).Value = T.TextString4 U+ m! x6 A2 f1 |: m
        Next# C/ f* T) e; ]
    End If" I& h& R8 \/ b2 I" D
    SS.Delete '删除用过的选择集7 G- u' i) c4 D5 }, H) A, y
End Sub) Q! I. Z0 J1 K; v& x
-----------------------------------------------------------------
; H9 n* X* @$ i# H8 |: t; O: q
7 M& x) o+ e* y6 f! k; X2 b( h“Alt+F11”打开VBA编辑器,将以上代码复制粘贴到thisdrawing对象代码窗口,在“工具”菜单下点“引用”,选择EXCEL类库(名称与EXCEL版本有关,如EXCEL2000为“Microsoft Excel 9.0 Object Library”),确定后即可使用。
  N8 [; V8 w1 f0 P* m5 }! m! z
8 I; q% V- C  t6 z$ L- d# o[ 本帖最后由 woaishuijia 于 2008-7-19 02:39 编辑 ]

评分

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

查看全部评分

 楼主| 发表于 2008-7-19 06:51:45 | 显示全部楼层 来自: 中国福建三明
我爱谁家真是高手,很感谢,实现了目标。看来也要学点VBA
, `6 q' s. J$ u9 S% u楼上还搞到这么晚,辛苦了(应该今天不用上班了吧),再一次多谢了& V8 e- `9 }; }- Q% ?  q. W
( m1 S  ^2 W& c2 Z' b9 F
[ 本帖最后由 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 )

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