本文实例讲述了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