工具箱相关
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

ZDMDexcel.py 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. from shapefile import Reader
  2. from openpyxl import Workbook
  3. def start():
  4. dmxpath = r'D:\4work_now\20241017dm\20241129\hltdm\dmxZ.shp'
  5. outpath = r'D:\4work_now\20241017dm\20241129\hltdm\hlt_zdm.xlsx'
  6. list1 = []
  7. max1 = 0
  8. with Reader(dmxpath) as dmx:
  9. dmxrec = dmx.records()
  10. for dmxr in dmxrec:
  11. knum = dmxr.KZ
  12. jnum = dmxr.JZ
  13. zh = dmxr.ZH_1
  14. if zh == '':
  15. gc = -1
  16. else:
  17. try:
  18. gc = zh.split(' ',-1)[1]
  19. except:
  20. gc = -1
  21. lista = []
  22. lista.append(knum)
  23. lista.append(jnum)
  24. lista.append(gc)
  25. list1.append(lista)
  26. if max1 < knum:
  27. max1 = knum
  28. wb = Workbook() # 新建工作簿
  29. ws = wb.active
  30. mm = 0
  31. nn = 0
  32. ii = 1
  33. while mm <= max1:
  34. while nn < 1000:
  35. lj = mm * 1000 + nn
  36. for re in list1:
  37. if re[0] == mm and re[1] == nn:
  38. ws.cell(row=ii, column=1, value=ii)
  39. ws.cell(row=ii, column=3, value=1000000)
  40. ws.cell(row=ii, column=4, value=lj)
  41. if ii == 1:
  42. ws.cell(row=ii, column=2, value=1)
  43. else:
  44. ws.cell(row=ii, column=2, value='+')
  45. if re[2] == -1:
  46. pass
  47. else:
  48. ws.cell(row=ii, column=5, value=re[2])
  49. print(str(lj))
  50. ii = ii + 1
  51. nn = nn + 10
  52. mm = mm + 1
  53. nn = 0
  54. wb.save(outpath)
  55. if __name__ == '__main__':
  56. start()