QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
4天前
查看: 4561|回复: 11
收起左侧

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

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

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

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

x
一DWG格式图纸,内有众多的多行文字,如果用复制.粘贴的办法是可以提取多行文字内的文字,但太慢了,不知有没什么办法- @0 S/ R2 j% i5 s0 x) V

, j. I6 J+ t6 J[ 本帖最后由 wsj249201 于 2008-7-19 08:34 编辑 ]
发表于 2008-7-18 13:28:24 | 显示全部楼层 来自: 中国四川成都
要看你往什么地方提,提来干嘛,OK?
发表于 2008-7-18 13:40:52 | 显示全部楼层 来自: 中国浙江台州
文字单独设图层
; i  i1 T0 e$ w  c) X屏蔽其他图层就可以快速提取所有文字了
 楼主| 发表于 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 | 显示全部楼层 来自: 中国江苏苏州
用特定对象选择,只选择文本. ~. f5 c! n  Q
来进行提取
 楼主| 发表于 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例程:
4 u$ l6 L6 G6 X; h6 d1 Q2 y5 N& K+ k/ |% E( V
-----------------------------------------------------------
$ Y& N: k$ D6 U' xSub TQ()5 C1 g4 Y0 v0 q8 O3 w
    On Error Resume Next2 n3 Z0 ~. [2 I
    Dim I As Integer
- p, h$ S) M3 E: N    Dim E As Excel.Application, B As Workbook, S As Worksheet
% b7 i6 F# E- y/ Y    Dim SS As AcadSelectionSet, T As Object, FT(3) As Integer, FD(3) As Variant
3 P7 G% i/ _& a' D0 }  G6 ?    '下面定义选择集过滤器列表为多行文字或单行文字
/ }% o4 Q+ H4 ?    FT(0) = -4: FD(0) = "<or") ]( y) S' M0 W: @! h& \5 }
    FT(1) = 0: FD(1) = "mtext"
& D, O! K5 {0 O    FT(2) = 0: FD(2) = "text"
$ P  N( Q2 J  S" T8 Y    FT(3) = -4: FD(3) = "or>"
8 O& e$ n0 Q2 s: l5 _4 Z    '创建选择集4 g9 b1 p2 A) [3 {  l
    Set SS = ThisDrawing.SelectionSets.Add("SS")4 S: }4 z& k3 J/ o7 I" G9 A0 j
    '在屏幕上选择多行文字或单行文字对象- Y; `2 ?6 }' J. @
    SS.SelectOnScreen FT, FD
. @& `/ o8 {- O3 r% ]     '如果选择集不为空则运行以下代码/ y; [, k2 b4 f& V
    If SS.Count > 0 Then
$ H- \4 f( e9 \% `        '运行EXCEL程序+ a' h1 r5 ?  j
        Set E = New Excel.Application8 l( d6 }4 _# U; f* J0 e" K
        '在EXCEL中插入工作薄( R+ ?5 M8 {/ W
        Set B = E.Workbooks.Add2 a( J: B9 @  `$ ~) r
        '定义工作表0 O4 T; u- ]2 h4 `2 }2 Z
        Set S = B.ActiveSheet
, j$ d; f& C# i1 [' }" Q# o        '显示EXCEL程序
* t: l( h: q$ @) x9 M        E.Visible = True& ]; C. y/ r8 o0 v* n4 \) i( z
         '遍历选择集并处理被选中的单行文字或多行文字对象
! Y1 `0 ?! i& x; P+ p! p5 \  V        For Each T In SS
1 d! A! `, C& D* \  g5 P( \7 ]            I = I + 1; ~8 X8 ~& w8 |4 i" t5 E" \
            '把单行文字或多行文字的内容写入表格
3 B2 C3 K( @2 f            '对于多行文字,如果直接写入则字符串中很可能包含转义符,使用者可根据需要对字符串运算处理后再写入表格
3 z! R0 a& G% J8 D- O& h8 |6 A            S.Cells(I, 1).Value = T.TextString  e5 D+ M( i) \7 z; f
        Next
( |$ R) y3 C( b; N    End If+ N, A! r' l0 ~" _4 q- O
    SS.Delete '删除用过的选择集
, p7 }& R; G4 a% p, c! x/ b! A+ B8 JEnd Sub
; d6 p3 }6 G0 r+ N-----------------------------------------------------------------
6 \& z% U, H( C. H+ E( Q
& ~; Q: D4 ]3 O0 A, W) |0 G1 v“Alt+F11”打开VBA编辑器,将以上代码复制粘贴到thisdrawing对象代码窗口,在“工具”菜单下点“引用”,选择EXCEL类库(名称与EXCEL版本有关,如EXCEL2000为“Microsoft Excel 9.0 Object Library”),确定后即可使用。! X; M) K! g$ k
& u5 p0 J% H- P# g
[ 本帖最后由 woaishuijia 于 2008-7-19 02:39 编辑 ]

评分

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

查看全部评分

 楼主| 发表于 2008-7-19 06:51:45 | 显示全部楼层 来自: 中国福建三明
我爱谁家真是高手,很感谢,实现了目标。看来也要学点VBA
5 |. h. g0 c3 B) ~9 E* @& X楼上还搞到这么晚,辛苦了(应该今天不用上班了吧),再一次多谢了6 B; X+ `2 t- P/ R" G# x! m
- D/ ~& k3 v& y0 n, @
[ 本帖最后由 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 )

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