12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- from shapefile import Reader
- from openpyxl import Workbook
-
- def start():
- dmxpath = r'D:\4work_now\20241017dm\20241129\dzgq\dmx.shp'
- outpath = r'D:\4work_now\20241017dm\20241129\dzgq\DZGQzdm.xlsx'
- list1 = []
- max1 = 0
- with Reader(dmxpath) as dmx:
- dmxrec = dmx.records()
- for dmxr in dmxrec:
- knum = dmxr.KZ
- jnum = dmxr.JZ
- zh = dmxr.ZH_1
- if zh == '':
- gc = -1
- else:
- try:
- gc = zh.split(' ',-1)[1]
- except:
- gc = -1
- lista = []
- lista.append(knum)
- lista.append(jnum)
- lista.append(gc)
- list1.append(lista)
- if max1 < knum:
- max1 = knum
- wb = Workbook() # 新建工作簿
- ws = wb.active
- mm = 0
- nn = 0
- ii = 1
- while mm <= max1:
- while nn < 1000:
- lj = mm * 1000 + nn
- fn = -1
- for re in list1:
- if re[0] == mm and re[1] == nn:
- ws.cell(row=ii, column=1, value=ii)
- ws.cell(row=ii, column=3, value=1000000)
- ws.cell(row=ii, column=4, value=lj)
- if ii == 1:
- ws.cell(row=ii, column=2, value=1)
- else:
- ws.cell(row=ii, column=2, value='+')
- if re[2] == -1:
- pass
- else:
- ws.cell(row=ii, column=5, value=re[2])
- print(str(lj))
- ii = ii + 1
- fn = 1
- if fn == -1:
- ws.cell(row=ii, column=1, value=ii)
- ws.cell(row=ii, column=3, value=1000000)
- ws.cell(row=ii, column=4, value=lj)
- if ii == 1:
- ws.cell(row=ii, column=2, value=1)
- else:
- ws.cell(row=ii, column=2, value='+')
- ii = ii + 1
- nn = nn + 50
- mm = mm + 1
- nn = 0
- wb.save(outpath)
-
-
- if __name__ == '__main__':
- start()
|