本文实例讲述了Python使用pyautocad+openpyxl处理cad文件。分享给大家供大家参考,具体如下:
示例1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
from pyautocad import Autocad import openpyxl wb = openpyxl.load_workbook( './cads.xlsx' ) sheet = wb.get_sheet_by_name( 'Sheet1' ) data = [] pset = [] acad = Autocad(create_if_not_exists = True ) acad.prompt( 'hello this is python in' ) for text in acad.iter_objects( 'Text' ): data.append(text.TextString) from pyautocad import APoint for text in acad.iter_objects( 'Text' ): pset.append(APoint(text.InsertionPoint)) print len (data) for d in range ( 1 , len (data)): sheet[ 'A' + str (d)].value = data[d] sheet[ 'B' + str (d)].value = str (pset[d].x) sheet[ 'C' + str (d)].value = str (pset[d].y) wb.save( 'aabb1.xlsx' ) print 'success aabb1.xlsx' |
其实pyautocad中有关于table的api
示例2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
from pyautocad import Autocad import openpyxl import sys reload (sys) sys.setdefaultencoding( 'utf-8' ) wb = openpyxl.load_workbook( './aabb.xlsx' ) sheet = wb.get_sheet_by_name( 'Sheet1' ) data = [] acad = Autocad(create_if_not_exists = True ) acad.prompt( 'hello this is python in' ) for text in acad.iter_objects( 'Text' ): data.append(text.TextString) print len (data) for d in range ( 1 , len (data)): if ( str (data[d])[ 0 : 4 ] = = "BM30" or str (data[d])[ 0 : 4 ] = = "BM65" ): sheet[ 'A' + str (d)].value = data[d] wb.save( 'ky1.xlsx' ) print 'success ky1.xlsx' |
截取了BM30和BM65的数据
示例3:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
import openpyxl from pyautocad import Autocad,APoint import sys reload (sys) sys.setdefaultencoding( "utf-8" ) wb = openpyxl.load_workbook( "a.xlsx" ) sheet = wb.get_sheet_by_name( "Sheet1" ) data = [] px = [] py = [] acad = Autocad(create_if_not_exists = True ) acad.prompt( "hello this is mt" ) for text in acad.iter_objects( 'Text' ): data.append(text.TextString) #print text.TextString px.append(APoint(text.InsertionPoint).x) py.append(APoint(text.InsertionPoint).y) #print text.InsertionPoint print len (data) print "eof" for d in range ( 1 , len (data)): if ( str (data[d])[ 0 : 4 ] = = "Vigi" or str (data[d])[ 0 : 4 ] = = "iC65" or str (data[d])[ 0 : 3 ] = = "CVS" or str (data[d])[ 0 : 3 ] = = "PRD" or str (data[d])[ 0 : 4 ] = = "DDZY" ): sheet[ 'A' + str (d)] = data[d] sheet[ 'B' + str (d)] = px[d] sheet[ "C" + str (d)] = py[d] # print data[d] wb.save( "kv.xlsx" ) print "success" #or str(data[d])[0:3]=="CVS" or str(data[d])[0:3]=="PRD" or str(data[d])[0:4]=="DDZY" |
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/mengtianwxs/article/details/53465209