0
点赞
收藏
分享

微信扫一扫

再接上一篇,实现从上到下,从左到右的顺序排序数据(暂时改进到此)


#__*__encoding:utf8__*__
import openpyxl
from pyautocad import Autocad,APoint
from pyhub import pyhub
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
wb=openpyxl.load_workbook("a.xlsx")
sheet=wb.get_sheet_by_name("Sheet1")
#数据集合
data=[]
#点集合
pxy=[]

#分割点x坐标
lst_lpx=[]
datatext=[]

acad=Autocad(create_if_not_exists=True)
acad.prompt("hello this is mt")

for t in acad.iter_objects("Text"):
if(t.TextString!="******"):
pxy.append((APoint(t.InsertionPoint).x, APoint(t.InsertionPoint).y))
data.append(t)
elif(t.TextString=="******"):
lst_lpx.append(APoint(t.InsertionPoint).x)

print lst_lpx


zb=pyhub.paixuzb_maopao(pxy)

datazb=[]
datasort=[]
#以坐标点排序文本内容并存入data列表中
for i in range(len(pxy)):
for t in data:
if(APoint(t.InsertionPoint).x==zb[i][0] and APoint(t.InsertionPoint).y==zb[i][1]):
datasort.append(APoint(t.InsertionPoint).x)
datatext.append(t.TextString)

datas=[]

for i in range(len(lst_lpx)):
for j in datasort[:]:
if (j<lst_lpx[i]):
datas.append(datatext.pop(datasort.index(j)))
datasort.remove(j)


#datas.reverse()
for d in range(len(datas)):
if(str(datas[d])[0:3]=="tex" or str(datas[d])[0:3]=="###"):
sheet["A"+str(d+1)]=datas[d]

wb.save("aabb.xlsx")
print "success"

在实践中遇到了列表删除数据中的困难。参考文章

​​http://www.zuimoban.com/jiaocheng/python/6727.html​​

举报

相关推荐

0 条评论