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

来源:互联网 发布:张家界玻璃桥网络购票 编辑:程序博客网 时间:2024/06/04 18:43
#__*__encoding:utf8__*__import openpyxlfrom pyautocad import Autocad,APointfrom pyhub import pyhubimport sysreload(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_lpxzb=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 0