工具箱相关
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

FormatConvert.py 41KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026
  1. # -*- coding: utf-8 -*-
  2. import openpyxl
  3. from openpyxl.styles import Alignment
  4. from openpyxl.styles import Border, Side
  5. from openpyxl.styles import Font
  6. from openpyxl.styles import PatternFill
  7. import pandas as pd
  8. import tkinter as tk
  9. from tkinter import filedialog as tkFileDialog
  10. from tkinter import messagebox
  11. import encryption
  12. import os
  13. from sympy import *
  14. import uuid
  15. import time
  16. import re
  17. type_gd = ['水田', '水浇地', '旱地']
  18. type_yd = ['果园', '茶园', '橡胶园', '其他园地']
  19. type_ld = ['乔木林地', '竹林地', '红树林地', '森林沼泽', '灌木林地', '灌丛沼泽', '其他林地']
  20. type_cd = ['天然牧草地', '沼泽草地', '人工牧草地', '其他草地']
  21. type_sf = ['零售商业用地', '批发市场用地', '餐饮用地', '旅馆用地', '商务金融用地', '娱乐用地', '其他商服用地']
  22. type_gk = ['工业用地', '采矿用地', '盐田', '仓储用地']
  23. type_zz = ['城镇住宅用地', '农村宅基地']
  24. type_gg = ['机关团体用地','新闻出版用地','教育用地','科研用地','医疗卫生用地','社会福利用地','文化设施用地','体育用地','公用设施用地','公园与绿地']
  25. type_ts = ['军事设施用地','使领馆用地','监教场所用地','宗教用地','殡葬用地','风景名胜设施用地']
  26. type_jt = ['铁路用地','轨道交通用地','公路用地','城镇村道路用地','交通服务站用地','农村道路','机场用地','港口码头用地','管道运输用地']
  27. type_sy = ['河流水面','湖泊水面','水库水面','坑塘水面','沿海滩涂','内陆滩涂','沟渠','沼泽地','水工建筑用地','冰川及永久积雪']
  28. type_qt = ['空闲地','设施农用地','田坎','盐碱地','沙地','裸土地','裸岩石砾地']
  29. def convert(input, moban, output):
  30. wb = openpyxl.load_workbook(moban)
  31. wb1 = openpyxl.load_workbook(input)
  32. sheet_names = wb1.sheetnames
  33. sheet = wb.active
  34. for j in range(1, len(sheet_names)):
  35. wb.copy_worksheet(sheet)
  36. sheet_names1 = wb.sheetnames
  37. for i in range(0, len(sheet_names)):
  38. sheet_info = wb1[sheet_names[i]]
  39. info_all = getinfo(sheet_info)
  40. info_gr = info_all[0]
  41. info_c = info_all[1]
  42. info_x = info_all[2]
  43. zyd = info_all[3]
  44. # if i == 1:
  45. # sheet.title = info_c[0]
  46. # else:
  47. # sheet = wb[sheet_names1[i - 1]]
  48. # sheet.title = info_c[0]
  49. sheet = wb[sheet_names1[i]]
  50. sheet.title = info_c[0]
  51. # 记录行数
  52. row = 2
  53. xh = 0
  54. thin = Side(border_style="thin", color="000000")
  55. for i in range(0, len(info_gr)):
  56. # 地块数
  57. num_dk = 0
  58. # 耕地数
  59. num_gd = 0
  60. # 园地数
  61. num_yd = 0
  62. # 耕地和园地总面积
  63. area_gd = 0
  64. area_yd = 0
  65. # 序号
  66. xh = i
  67. for j in range(2, len(info_gr[i])):
  68. if type_gd.__contains__(info_gr[i][j][0]) and info_gr[i][j][4] == '' or \
  69. type_gd.__contains__(info_gr[i][j][0]) and info_gr[i][j][4] == ' ':
  70. num_gd = num_gd + 1
  71. num_dk = num_dk + 1
  72. sheet['E' + str(num_gd + row)].value = info_gr[i][j][0]
  73. sheet['F' + str(num_gd + row)].value = '地块' + str(num_dk)
  74. sheet['G' + str(num_gd + row)].value = info_gr[i][j][1]
  75. sheet['G' + str(num_gd + row)].number_format = '0.00'
  76. sheet['H' + str(num_gd + row)].value = info_gr[i][j][3]
  77. area_gd = info_gr[i][j][1] + area_gd
  78. if type_yd.__contains__(info_gr[i][j][0]) and info_gr[i][j][4] == '' or \
  79. type_yd.__contains__(info_gr[i][j][0]) and info_gr[i][j][4] == ' ':
  80. num_dk = num_dk + 1
  81. num_yd = num_yd + 1
  82. sheet['I' + str(num_yd + row)].value = info_gr[i][j][0]
  83. sheet['J' + str(num_yd + row)].value = '地块' + str(num_dk)
  84. sheet['K' + str(num_yd + row)].value = info_gr[i][j][1]
  85. sheet['K' + str(num_yd + row)].number_format = '0.00'
  86. sheet['L' + str(num_yd + row)].value = info_gr[i][j][2]
  87. sheet['M' + str(num_yd + row)].value = info_gr[i][j][3]
  88. sheet['N' + str(num_yd + row)].value = info_gr[i][j][1]
  89. sheet['N' + str(num_yd + row)].number_format = '0.00'
  90. sheet['O' + str(num_yd + row)].value = info_gr[i][j][5]
  91. area_yd = info_gr[i][j][1] + area_yd
  92. # 计算园地中小计的单元格融合范围
  93. flag = [] # 相同类型园地
  94. for i in range(row + 1, row + num_yd):
  95. area_xj = float(sheet['k' + str(i)].value)
  96. start = 0
  97. end = 0
  98. cf = 0 # 重复次数
  99. for j in range(i + 1, row + num_yd + 1):
  100. if sheet['M' + str(i)].value == sheet['M' + str(j)].value and \
  101. sheet['L' + str(i)].value == sheet['L' + str(j)].value:
  102. # 再次重复
  103. if (start == i):
  104. # 只记录未被融合过的单元格
  105. if j not in flag:
  106. cf = cf + 1
  107. end = j
  108. area_xj = area_xj + float(sheet['k' + str(j)].value)
  109. flag.append(j)
  110. if j == row + num_yd:
  111. sheet.merge_cells(range_string='N' + str(start) + ':' + 'N' + str(end))
  112. sheet['N' + str(start)].value = area_xj
  113. sheet['N' + str(start)].number_format = '0.00'
  114. else:
  115. continue
  116. # 首次重复
  117. else:
  118. if i not in flag:
  119. cf = cf + 1
  120. start = i
  121. end = j
  122. area_xj = area_xj + float(sheet['k' + str(j)].value)
  123. flag.append(i)
  124. flag.append(j)
  125. if j == row + num_yd:
  126. sheet.merge_cells(range_string='N' + str(start) + ':' + 'N' + str(end))
  127. sheet['N' + str(start)].value = area_xj
  128. sheet['N' + str(start)].number_format = '0.00'
  129. else:
  130. continue
  131. else:
  132. if cf != 0:
  133. sheet.merge_cells(range_string='N' + str(start) + ':' + 'N' + str(end))
  134. sheet['N' + str(start)].value = area_xj
  135. sheet['N' + str(start)].number_format = '0.00'
  136. cf = 0
  137. # 合计行行数
  138. hj_row = row + max(num_yd, num_gd) + 1
  139. sheet.merge_cells(range_string='E' + str(hj_row) + ':' + 'F' + str(hj_row))
  140. sheet['E' + str(hj_row)].value = '合计'
  141. sheet['G' + str(hj_row)].value = area_gd
  142. sheet['G' + str(hj_row)].number_format = '0.00'
  143. sheet['G' + str(hj_row)].font = Font(bold=True)
  144. sheet.merge_cells(range_string='I' + str(hj_row) + ':' + 'M' + str(hj_row))
  145. sheet['I' + str(hj_row)].value = '合计'
  146. sheet['N' + str(hj_row)].value = area_yd
  147. sheet['N' + str(hj_row)].font = Font(bold=True)
  148. sheet['N' + str(hj_row)].number_format = '0.00'
  149. colorfill(sheet, hj_row, 'gr')
  150. # 序号、户主、身份证、总面积
  151. sheet.merge_cells(range_string='A' + str(row + 1) + ':' + 'A' + str(hj_row))
  152. sheet['A' + str(row + 1)].value = xh + 1
  153. sheet.merge_cells(range_string='B' + str(row + 1) + ':' + 'B' + str(hj_row))
  154. sheet['B' + str(row + 1)].value = info_gr[xh][1]
  155. sheet.merge_cells(range_string='C' + str(row + 1) + ':' + 'C' + str(hj_row))
  156. sheet['C' + str(row + 1)].value = str(info_gr[xh][0])
  157. sheet.merge_cells(range_string='D' + str(row + 1) + ':' + 'D' + str(hj_row))
  158. sheet['D' + str(row + 1)].value = area_yd + area_gd
  159. sheet['D' + str(row + 1)].number_format = '0.00'
  160. row = row + max(num_yd, num_gd) + 1
  161. xh = xh + 1
  162. # 村
  163. row_c = row
  164. if len(info_c) != 0:
  165. merge_c = mergeduplication(info_c)
  166. row_c = cxdlfill(merge_c, sheet, row, xh)
  167. # 县
  168. row_x = row_c
  169. if len(info_x) != 0:
  170. merge_x = mergeduplication(info_x)
  171. row_x = cxdlfill(merge_x, sheet, row_c[0], row_c[1])
  172. # 争议地
  173. if len(zyd) != 0:
  174. merge_zyd = mergedzyd(zyd)
  175. cxdlfill(merge_zyd, sheet, row_x[0], row_x[1])
  176. # 格式
  177. for i in range(1, sheet.max_row + 1):
  178. for j in range(1, sheet.max_column + 1):
  179. sheet.cell(i, j).alignment = Alignment(horizontal='center', vertical='center')
  180. for i in range(3, sheet.max_row + 1):
  181. for j in range(1, 16):
  182. sheet.cell(i, j).border = Border(top=thin, left=thin, right=thin, bottom=thin)
  183. medium = Side(border_style="medium", color="000000")
  184. sheet['BD1'].border = Border(top=thin, left=thin, right=medium, bottom=thin)
  185. wb.save(output + '\\' + 'result_4.xlsx')
  186. def drawwd():
  187. window = tk.Tk() # 创建窗口对象的背景色
  188. window.title('表格样式转换') # 设置窗口的标题
  189. window.geometry('400x250') # 设置窗口的大小
  190. title = tk.Label(window, text='表格样式转换',
  191. font=('微软雅黑', 12), width=40, height=3)
  192. title.place(x=0, y=0, anchor='nw')
  193. choosepath = tk.Label(window, text='要转换的文件(.xlsx):',
  194. font=('微软雅黑', 12), width=20, height=2)
  195. choosepath.place(x=0, y=50, anchor='nw')
  196. path_var1 = tk.StringVar() # 输入路径
  197. entry1 = tk.Entry(window, textvariable=path_var1)
  198. entry1.place(x=170, y=65, anchor='nw')
  199. mbpath = tk.Label(window, text='表头模板文件(.xlsx):',
  200. font=('微软雅黑', 12), width=20, height=2)
  201. mbpath.place(x=0, y=100, anchor='nw')
  202. path_var2 = tk.StringVar() # 输入路径
  203. entry2 = tk.Entry(window, textvariable=path_var2)
  204. entry2.place(x=170, y=115, anchor='nw')
  205. resultpath = tk.Label(window, text='输出文件夹:',
  206. font=('微软雅黑', 12), width=20, height=2)
  207. resultpath.place(x=0, y=150, anchor='nw')
  208. path_var6 = tk.StringVar() # 输出路径
  209. entry6 = tk.Entry(window, textvariable=path_var6)
  210. entry6.place(x=170, y=165, anchor='nw')
  211. def choose1():
  212. file_dir1 = tkFileDialog.askopenfilename(filetypes=[('Excel', '.xlsx'), ('All Files', '*')])
  213. path_var1.set(file_dir1)
  214. def choose2():
  215. file_dir2 = tkFileDialog.askopenfilename(filetypes=[('Excel', '.xlsx'), ('All Files', '*')])
  216. path_var2.set(file_dir2)
  217. def choose3():
  218. file_dir6 = tkFileDialog.askdirectory()
  219. path_var6.set(file_dir6)
  220. def tuichu():
  221. window.destroy()
  222. def main():
  223. inpath = entry1.get()
  224. mbpath = entry2.get()
  225. outpath = entry6.get()
  226. convert(inpath,mbpath,outpath)
  227. messagebox.showinfo("消息", "运行成功")
  228. window.destroy()
  229. tk.Button(window, text='选择', command=choose1).place(x=320, y=60, anchor='nw')
  230. tk.Button(window, text='选择', command=choose2).place(x=320, y=110, anchor='nw')
  231. tk.Button(window, text='选择', command=choose3).place(x=320, y=160, anchor='nw')
  232. tk.Button(window, text='确认', command=main).place(x=120, y=210, anchor='nw')
  233. tk.Button(window, text='取消', command=tuichu).place(x=220, y=210, anchor='nw')
  234. window.mainloop()
  235. # 从表中收集所有信息
  236. def getinfo(sheet):
  237. # 身份证号
  238. sfz = []
  239. # 所有信息
  240. info = []
  241. # 个人信息
  242. info_gr = []
  243. # 村
  244. info_c = []
  245. # 县
  246. info_x = []
  247. # 争议
  248. info_zy = []
  249. #村名
  250. name_c = ''
  251. #县名
  252. name_x = ''
  253. # 记录这是第几条个人信息
  254. j = -1
  255. # 遍历整个表获取所有信息
  256. for i in range(2, sheet.max_row + 1):
  257. num = sheet['C'+str(i)].value
  258. if (num != ' ' and num != None) and sheet['I' + str(i)].value != '是':
  259. if sfz.__contains__(num):
  260. if type_gd.__contains__(sheet['D' + str(i)].value):
  261. gd = dlinfo(sheet, i)
  262. info_gr[j].append(gd)
  263. elif type_yd.__contains__(sheet['D' + str(i)].value):
  264. yd = ydinfo(sheet, i)
  265. info_gr[j].append(yd)
  266. elif type_ld.__contains__(sheet['D' + str(i)].value):
  267. qmld = ldinfo(sheet, i)
  268. info_c.append(qmld)
  269. else:
  270. qt = dlinfo(sheet,i)
  271. info_c.append(qt)
  272. else:
  273. j = j + 1
  274. sfz.append(num)
  275. numlist = [num]
  276. info_gr.append(numlist)
  277. name = sheet['B' + str(i)].value
  278. if type_gd.__contains__(sheet['D' + str(i)].value):
  279. gd = dlinfo(sheet, i)
  280. info_gr[j].append(name)
  281. info_gr[j].append(gd)
  282. elif type_yd.__contains__(sheet['D' + str(i)].value):
  283. yd = ydinfo(sheet, i)
  284. info_gr[j].append(name)
  285. info_gr[j].append(yd)
  286. elif type_ld.__contains__(sheet['D' + str(i)].value):
  287. ld = ldinfo(sheet, i)
  288. info_c.append(ld)
  289. info_gr[j].append(name)
  290. elif sheet['I' + str(i)].value != '是':
  291. hz = sheet['B'+str(i)].value
  292. if hz[len(hz)-1] == '村' or '镇' in hz or '组' in hz:
  293. name_c = hz
  294. if type_yd.__contains__(sheet['D' + str(i)].value):
  295. yd = ydinfo(sheet, i)
  296. info_c.append(yd)
  297. elif type_ld.__contains__(sheet['D' + str(i)].value):
  298. ld = ldinfo(sheet, i)
  299. info_c.append(ld)
  300. else:
  301. qtinfo = dlinfo(sheet, i)
  302. info_c.append(qtinfo)
  303. elif hz[len(hz)-1] == '县':
  304. name_x = hz
  305. if type_yd.__contains__(sheet['D' + str(i)].value):
  306. yd = ydinfo(sheet, i)
  307. info_x.append(yd)
  308. elif type_ld.__contains__(sheet['D' + str(i)].value):
  309. ld = ldinfo(sheet, i)
  310. info_x.append(ld)
  311. else:
  312. qtinfo = dlinfo(sheet, i)
  313. info_x.append(qtinfo)
  314. else:
  315. if type_yd.__contains__(sheet['D' + str(i)].value):
  316. yd = ydinfo(sheet, i)
  317. info_zy.append(yd)
  318. elif type_ld.__contains__(sheet['D' + str(i)].value):
  319. ld = ldinfo(sheet, i)
  320. info_zy.append(ld)
  321. else:
  322. qtinfo = dlinfo(sheet, i)
  323. info_zy.append(qtinfo)
  324. if name_c != '':
  325. info_c.insert(0, name_c)
  326. if name_x != '':
  327. info_x.insert(0, name_x)
  328. info.append(info_gr)
  329. info.append(info_c)
  330. info.append(info_x)
  331. info.append(info_zy)
  332. return info
  333. # 获取除园地、林地以外的其他地类信息
  334. def dlinfo(sheet,i):
  335. dl = sheet['D' + str(i)].value
  336. mj = sheet['F' + str(i)].value
  337. zy = sheet['I' + str(i)].value
  338. bz = sheet['j' + str(i)].value
  339. list = []
  340. list.append(dl)
  341. list.append(mj)
  342. list.append('')
  343. list.append('')
  344. list.append(zy)
  345. list.append(bz)
  346. return list
  347. # 获取园地信息
  348. def ydinfo(sheet,i):
  349. dl = sheet['D' + str(i)].value
  350. mj = sheet['F' + str(i)].value
  351. sz = sheet['G' + str(i)].value
  352. csd = sheet['H' + str(i)].value
  353. zy = sheet['I' + str(i)].value
  354. bz = sheet['j' + str(i)].value
  355. list = []
  356. list.append(dl)
  357. list.append(mj)
  358. list.append(sz)
  359. list.append(csd)
  360. list.append(zy)
  361. list.append(bz)
  362. return list
  363. # 获取林地信息
  364. def ldinfo(sheet,i):
  365. dl = sheet['D' + str(i)].value
  366. mj = sheet['F' + str(i)].value
  367. sz = sheet['G' + str(i)].value
  368. zy = sheet['I' + str(i)].value
  369. bz = sheet['j' + str(i)].value
  370. list = []
  371. list.append(dl)
  372. list.append(mj)
  373. list.append(sz)
  374. list.append('')
  375. list.append(zy)
  376. list.append(bz)
  377. return list
  378. # 获取争议地信息
  379. def getzyd(infolist):
  380. zydlist = []
  381. for i in range(0, len(infolist[0])):
  382. for j in range(2, len(infolist[0][i])):
  383. if infolist[0][i][j][len(infolist[0][i][j]) - 2] == '是':
  384. zydlist.append(infolist[0][i][j])
  385. for i in range(1, len(infolist[1])):
  386. if infolist[1][i][len(infolist[1][i]) - 2] == '是':
  387. zydlist.append(infolist[1][i])
  388. for i in range(1, len(infolist[2])):
  389. if infolist[2][i][len(infolist[2][i]) - 2] == '是':
  390. zydlist.append(infolist[2][i])
  391. for i in range(1, len(infolist[3])):
  392. zydlist.append(infolist[3][i])
  393. return zydlist
  394. # 单元格颜色填充
  395. def colorfill(sheet, row,flag):
  396. fille = PatternFill("solid", fgColor="E2EFDA")
  397. if flag == 'gr':
  398. for i in range(4, 15):
  399. sheet.cell(row, i).fill = fille
  400. else:
  401. for i in range(5, 57):
  402. sheet.cell(row, i).fill = fille
  403. # 整理集体所有的土地信息
  404. def mergeduplication(info):
  405. name = info[0]
  406. info.remove(info[0])
  407. mergeinfo = []
  408. ld = []
  409. yd = []
  410. qt = []
  411. for i in range(0, len(info)):
  412. if type_yd.__contains__(info[i][0]) and info[i][4] != '是':
  413. yd.append(info[i])
  414. info[i][4] = 1
  415. if info[i][5] == None:
  416. info[i][5] = '无'
  417. elif type_ld.__contains__(info[i][0]) and info[i][4] != '是':
  418. ld.append(info[i])
  419. info[i][4] = 1
  420. if info[i][5] == None:
  421. info[i][5] = '无'
  422. if info[i][2] == None:
  423. info[i][2] = '无'
  424. elif info[i][4] != '是':
  425. qt.append(info[i])
  426. info[i][4] = 1
  427. if info[i][5] == None:
  428. info[i][5] = '无'
  429. lddf = pd.DataFrame(ld, columns=['dl', 'mj', 'sz', 'csd', 'zy', 'bz'])
  430. yddf = pd.DataFrame(yd, columns=['dl', 'mj', 'sz', 'csd', 'zy', 'bz'])
  431. qtdf = pd.DataFrame(qt, columns=['dl', 'mj', 'sz', 'csd', 'zy', 'bz'])
  432. ldinfo = lddf.groupby(['dl', 'sz', 'bz']).sum()
  433. #ld_num = lddf.groupby(['dl', 'sz', 'bz']).count()
  434. ydinfo = yddf.groupby(['dl', 'sz', 'csd', 'bz']).sum()
  435. #yd_num = lddf.groupby(['dl', 'sz', 'bz']).count()
  436. qtinfo = qtdf.groupby(['dl', 'bz']).sum()
  437. #qt_num = lddf.groupby(['dl', 'sz', 'bz']).count()
  438. # print(ldinfo)
  439. # print(ydinfo)
  440. # print(qtinfo)
  441. ld_list = []
  442. flag = 0
  443. for group, values in ldinfo.iteritems():
  444. group_dict = values.to_dict() # 每个组转字典
  445. gplist = list(group_dict)
  446. vllist = list(group_dict.values())
  447. for i in range(0, len(gplist)):
  448. if flag < len(group_dict):
  449. zh = list(gplist[i])
  450. zh.append(vllist[i])
  451. ld_list.append(zh)
  452. flag = flag + 1
  453. else:
  454. ld_list[i].append(vllist[i])
  455. yd_list = []
  456. flag = 0
  457. for group, values in ydinfo.iteritems():
  458. group_dict = values.to_dict() # 每个组转字典
  459. gplist = list(group_dict)
  460. vllist = list(group_dict.values())
  461. for i in range(0, len(gplist)):
  462. if flag < len(group_dict):
  463. zh = list(gplist[i])
  464. zh.append(vllist[i])
  465. yd_list.append(zh)
  466. flag = flag + 1
  467. else:
  468. yd_list[i].append(vllist[i])
  469. flag = 0
  470. qt_list = []
  471. for group, values in qtinfo.iteritems():
  472. group_dict = values.to_dict() # 每个组转字典
  473. gplist = list(group_dict)
  474. vllist = list(group_dict.values())
  475. for i in range(0, len(gplist)):
  476. if flag < len(group_dict):
  477. zh = list(gplist[i])
  478. zh.append(vllist[i])
  479. qt_list.append(zh)
  480. flag = flag + 1
  481. else:
  482. qt_list[i].append(vllist[i])
  483. mergeinfo.append(ld_list)
  484. mergeinfo.append(yd_list)
  485. mergeinfo.append(qt_list)
  486. mergeinfo.insert(0, name)
  487. return mergeinfo
  488. # 将整理后的集体土体信息填到表格中
  489. def cxdlfill(info,sheet,row,xh):
  490. num_gd = 0
  491. area_gd = 0
  492. num_yd = 0
  493. area_yd = 0
  494. num_ld = 0
  495. area_ld = 0
  496. num_cd = 0
  497. area_cd = 0
  498. num_sf = 0
  499. area_sf = 0
  500. num_gk = 0
  501. area_gk = 0
  502. num_zz = 0
  503. area_zz = 0
  504. num_gg = 0
  505. area_gg = 0
  506. num_ts = 0
  507. area_ts = 0
  508. num_jt = 0
  509. area_jt = 0
  510. num_sy = 0
  511. area_sy = 0
  512. num_qt = 0
  513. area_qt = 0
  514. for i in range(1, len(info)):
  515. for j in range(0, len(info[i])):
  516. if type_gd.__contains__(info[i][j][0]):
  517. num_gd = num_gd + 1
  518. sheet['E' + str(num_gd + row)].value = info[i][j][0]
  519. sheet['F' + str(num_gd + row)].value = info[i][j][3]
  520. sheet['G' + str(num_gd + row)].value = info[i][j][2]
  521. sheet['G' + str(num_gd + row)].number_format = '0.00'
  522. if info[i][j][1] == '无':
  523. sheet['H' + str(num_gd + row)].value = ''
  524. else:
  525. sheet['H' + str(num_gd + row)].value = info[i][j][1]
  526. area_gd = info[i][j][2] + area_gd
  527. elif type_yd.__contains__(info[i][j][0]):
  528. num_yd = num_yd + 1
  529. sheet['I' + str(num_yd + row)].value = info[i][j][0]
  530. sheet['J' + str(num_yd + row)].value = info[i][j][5]
  531. sheet['K' + str(num_yd + row)].value = info[i][j][4]
  532. sheet['K' + str(num_yd + row)].number_format = '0.00'
  533. sheet['L' + str(num_yd + row)].value = info[i][j][1]
  534. sheet['M' + str(num_yd + row)].value = info[i][j][2]
  535. sheet['N' + str(num_yd + row)].value = info[i][j][4]
  536. sheet['N' + str(num_yd + row)].number_format = '0.00'
  537. if info[i][j][3] == '无':
  538. sheet['O' + str(num_yd + row)].value = ''
  539. else:
  540. sheet['O' + str(num_yd + row)].value = info[i][j][3]
  541. area_yd = info[i][j][4] + area_yd
  542. elif type_ld.__contains__(info[i][j][0]):
  543. num_ld = num_ld + 1
  544. sheet['P' + str(num_ld + row)].value = info[i][j][0]
  545. sheet['Q' + str(num_ld + row)].value = info[i][j][4]
  546. sheet['R' + str(num_ld + row)].value = info[i][j][3]
  547. sheet['R' + str(num_ld + row)].number_format = '0.00'
  548. if info[i][j][1] == '无':
  549. sheet['S' + str(num_ld + row)].value = ''
  550. else:
  551. sheet['S' + str(num_ld + row)].value = info[i][j][1]
  552. if info[i][j][2] == '无':
  553. sheet['T' + str(num_ld + row)].value = ''
  554. else:
  555. sheet['T' + str(num_ld + row)].value = info[i][j][2]
  556. area_ld = info[i][j][3] + area_ld
  557. elif type_cd.__contains__(info[i][j][0]):
  558. num_cd = num_cd + 1
  559. sheet['U' + str(num_cd + row)].value = info[i][j][0]
  560. sheet['V' + str(num_cd + row)].value = info[i][j][3]
  561. sheet['W' + str(num_cd + row)].value = info[i][j][2]
  562. sheet['W' + str(num_cd + row)].number_format = '0.00'
  563. if info[i][j][1] == '无':
  564. sheet['X' + str(num_cd + row)].value = ''
  565. else:
  566. sheet['X' + str(num_cd + row)].value = info[i][j][1]
  567. area_cd = info[i][j][2] + area_cd
  568. elif type_sf.__contains__(info[i][j][0]):
  569. num_sf = num_sf + 1
  570. sheet['Y' + str(num_sf + row)].value = info[i][j][0]
  571. sheet['Z' + str(num_sf + row)].value = info[i][j][3]
  572. sheet['AA' + str(num_sf + row)].value = info[i][j][2]
  573. sheet['AA' + str(num_sf+ row)].number_format = '0.00'
  574. if info[i][j][1] == '无':
  575. sheet['AB' + str(num_sf + row)].value = ''
  576. else:
  577. sheet['AB' + str(num_sf + row)].value = info[i][j][1]
  578. area_sf = info[i][j][2] + area_sf
  579. elif type_gk.__contains__(info[i][j][0]):
  580. num_gk = num_gk + 1
  581. sheet['AC' + str(num_gk + row)].value = info[i][j][0]
  582. sheet['AD' + str(num_gk + row)].value = info[i][j][3]
  583. sheet['AE' + str(num_gk + row)].value = info[i][j][2]
  584. sheet['AE' + str(num_gk + row)].number_format = '0.00'
  585. if info[i][j][1] == '无':
  586. sheet['AF' + str(num_gk + row)].value = ''
  587. else:
  588. sheet['AF' + str(num_gk + row)].value = info[i][j][1]
  589. area_gk = info[i][j][2] + area_gk
  590. elif type_zz.__contains__(info[i][j][0]):
  591. num_zz = num_zz + 1
  592. sheet['AG' + str(num_zz + row)].value = info[i][j][0]
  593. sheet['AH' + str(num_zz + row)].value = info[i][j][3]
  594. sheet['AI' + str(num_zz + row)].value = info[i][j][2]
  595. sheet['AI' + str(num_zz + row)].number_format = '0.00'
  596. if info[i][j][1] == '无':
  597. sheet['AJ' + str(num_zz + row)].value = ''
  598. else:
  599. sheet['AJ' + str(num_zz + row)].value = info[i][j][1]
  600. area_zz = info[i][j][2] + area_zz
  601. elif type_gg.__contains__(info[i][j][0]):
  602. num_gg = num_gg + 1
  603. sheet['AK' + str(num_gg + row)].value = info[i][j][0]
  604. sheet['AL' + str(num_gg + row)].value = info[i][j][3]
  605. sheet['AM' + str(num_gg + row)].value = info[i][j][2]
  606. sheet['AM' + str(num_gg + row)].number_format = '0.00'
  607. if info[i][j][1] == '无':
  608. sheet['AN' + str(num_gg + row)].value = ''
  609. else:
  610. sheet['AN' + str(num_gg + row)].value = info[i][j][1]
  611. area_gg = info[i][j][2] + area_gg
  612. elif type_ts.__contains__(info[i][j][0]):
  613. num_ts = num_ts + 1
  614. sheet['AO' + str(num_ts + row)].value = info[i][j][0]
  615. sheet['AP' + str(num_ts + row)].value = info[i][j][3]
  616. sheet['AQ' + str(num_ts + row)].value = info[i][j][2]
  617. sheet['AQ' + str(num_ts + row)].number_format = '0.00'
  618. if info[i][j][1] == '无':
  619. sheet['AR' + str(num_ts + row)].value = ''
  620. else:
  621. sheet['AR' + str(num_ts + row)].value = info[i][j][1]
  622. area_ts = info[i][j][2] + area_ts
  623. elif type_jt.__contains__(info[i][j][0]):
  624. num_jt = num_jt + 1
  625. sheet['AS' + str(num_jt + row)].value = info[i][j][0]
  626. sheet['AT' + str(num_jt + row)].value = info[i][j][3]
  627. sheet['AU' + str(num_jt + row)].value = info[i][j][2]
  628. sheet['AU' + str(num_jt + row)].number_format = '0.00'
  629. if info[i][j][1] == '无':
  630. sheet['AV' + str(num_jt + row)].value = ''
  631. else:
  632. sheet['AV' + str(num_jt + row)].value = info[i][j][1]
  633. area_jt = info[i][j][2] + area_jt
  634. elif type_sy.__contains__(info[i][j][0]):
  635. num_sy = num_sy + 1
  636. sheet['AW' + str(num_sy + row)].value = info[i][j][0]
  637. sheet['AX' + str(num_sy + row)].value = info[i][j][3]
  638. sheet['AY' + str(num_sy + row)].value = info[i][j][2]
  639. sheet['AY' + str(num_sy + row)].number_format = '0.00'
  640. if info[i][j][1] == '无':
  641. sheet['AZ' + str(num_sy + row)].value = ''
  642. else:
  643. sheet['AZ' + str(num_sy + row)].value = info[i][j][1]
  644. area_sy = info[i][j][2] + area_sy
  645. elif type_qt.__contains__(info[i][j][0]):
  646. num_qt = num_qt + 1
  647. sheet['BA' + str(num_qt + row)].value = info[i][j][0]
  648. sheet['BB' + str(num_qt + row)].value = info[i][j][3]
  649. sheet['BC' + str(num_qt + row)].value = info[i][j][2]
  650. sheet['BC' + str(num_qt + row)].number_format = '0.00'
  651. if info[i][j][1] == '无':
  652. sheet['BD' + str(num_qt + row)].value = ''
  653. else:
  654. sheet['BD' + str(num_qt + row)].value = info[i][j][1]
  655. area_qt = info[i][j][2] + area_qt
  656. # 合计行行数
  657. hj_row = row + max(num_yd, num_gd,num_cd,num_ld,num_sf,num_gk,num_zz,num_gg,num_ts,num_jt,num_sy,num_qt) + 1
  658. sheet.merge_cells(range_string='E' + str(hj_row) + ':' + 'F' + str(hj_row))
  659. sheet['E' + str(hj_row)].value = '合计'
  660. sheet['G' + str(hj_row)].value = area_gd
  661. sheet['G' + str(hj_row)].number_format = '0.00'
  662. sheet['G' + str(hj_row)].font = Font(bold=True)
  663. sheet.merge_cells(range_string='I' + str(hj_row) + ':' + 'M' + str(hj_row))
  664. sheet['I' + str(hj_row)].value = '合计'
  665. sheet['N' + str(hj_row)].value = area_yd
  666. sheet['N' + str(hj_row)].font = Font(bold=True)
  667. sheet['N' + str(hj_row)].number_format = '0.00'
  668. sheet.merge_cells(range_string='P' + str(hj_row) + ':' + 'Q' + str(hj_row))
  669. sheet['P' + str(hj_row)].value = '合计'
  670. sheet['R' + str(hj_row)].value = area_ld
  671. sheet['R' + str(hj_row)].font = Font(bold=True)
  672. sheet['R' + str(hj_row)].number_format = '0.00'
  673. sheet.merge_cells(range_string='U' + str(hj_row) + ':' + 'V' + str(hj_row))
  674. sheet['U' + str(hj_row)].value = '合计'
  675. sheet['W' + str(hj_row)].value = area_cd
  676. sheet['W' + str(hj_row)].font = Font(bold=True)
  677. sheet['W' + str(hj_row)].number_format = '0.00'
  678. sheet.merge_cells(range_string='Y' + str(hj_row) + ':' + 'Z' + str(hj_row))
  679. sheet['Y' + str(hj_row)].value = '合计'
  680. sheet['AA' + str(hj_row)].value = area_sf
  681. sheet['AA' + str(hj_row)].font = Font(bold=True)
  682. sheet['AA' + str(hj_row)].number_format = '0.00'
  683. sheet.merge_cells(range_string='AC' + str(hj_row) + ':' + 'AD' + str(hj_row))
  684. sheet['AC' + str(hj_row)].value = '合计'
  685. sheet['AE' + str(hj_row)].value = area_gk
  686. sheet['AE' + str(hj_row)].font = Font(bold=True)
  687. sheet['AE' + str(hj_row)].number_format = '0.00'
  688. sheet.merge_cells(range_string='AG' + str(hj_row) + ':' + 'AH' + str(hj_row))
  689. sheet['AG' + str(hj_row)].value = '合计'
  690. sheet['AI' + str(hj_row)].value = area_zz
  691. sheet['AI' + str(hj_row)].font = Font(bold=True)
  692. sheet['AI' + str(hj_row)].number_format = '0.00'
  693. sheet.merge_cells(range_string='AK' + str(hj_row) + ':' + 'AL' + str(hj_row))
  694. sheet['AK' + str(hj_row)].value = '合计'
  695. sheet['AM' + str(hj_row)].value = area_gg
  696. sheet['AM' + str(hj_row)].font = Font(bold=True)
  697. sheet['AM' + str(hj_row)].number_format = '0.00'
  698. sheet.merge_cells(range_string='AO' + str(hj_row) + ':' + 'AP' + str(hj_row))
  699. sheet['AO' + str(hj_row)].value = '合计'
  700. sheet['AQ' + str(hj_row)].value = area_ts
  701. sheet['AQ' + str(hj_row)].font = Font(bold=True)
  702. sheet['AQ' + str(hj_row)].number_format = '0.00'
  703. sheet.merge_cells(range_string='AS' + str(hj_row) + ':' + 'AT' + str(hj_row))
  704. sheet['AS' + str(hj_row)].value = '合计'
  705. sheet['AU' + str(hj_row)].value = area_jt
  706. sheet['AU' + str(hj_row)].font = Font(bold=True)
  707. sheet['AU' + str(hj_row)].number_format = '0.00'
  708. sheet.merge_cells(range_string='AW' + str(hj_row) + ':' + 'AX' + str(hj_row))
  709. sheet['AW' + str(hj_row)].value = '合计'
  710. sheet['AY' + str(hj_row)].value = area_sy
  711. sheet['AY' + str(hj_row)].font = Font(bold=True)
  712. sheet['AY' + str(hj_row)].number_format = '0.00'
  713. sheet.merge_cells(range_string='BA' + str(hj_row) + ':' + 'BB' + str(hj_row))
  714. sheet['BA' + str(hj_row)].value = '合计'
  715. sheet['BC' + str(hj_row)].value = area_qt
  716. sheet['BC' + str(hj_row)].font = Font(bold=True)
  717. sheet['BC' + str(hj_row)].number_format = '0.00'
  718. colorfill(sheet, hj_row, 'cx')
  719. # 序号、户主、身份证、总面积
  720. sheet.merge_cells(range_string='A' + str(row + 1) + ':' + 'A' + str(hj_row))
  721. # if xh == 0:
  722. # sheet['A' + str(row + 1)].value = xh + 1
  723. # else:
  724. # sheet['A' + str(row + 1)].value = xh + 2
  725. sheet['A' + str(row + 1)].value = xh + 1
  726. sheet.merge_cells(range_string='B' + str(row + 1) + ':' + 'B' + str(hj_row))
  727. sheet['B' + str(row + 1)].value = info[0]
  728. sheet.merge_cells(range_string='C' + str(row + 1) + ':' + 'C' + str(hj_row))
  729. sheet.merge_cells(range_string='D' + str(row + 1) + ':' + 'D' + str(hj_row))
  730. sheet['D' + str(row + 1)].value = area_yd + area_gd +area_cd+area_ld+area_ts+area_gg+area_jt+area_sf+area_gk+area_zz+area_sy+area_qt
  731. sheet['D' + str(row + 1)].number_format = '0.00'
  732. thin = Side(border_style="thin", color="000000")
  733. for i in range(row + 1, sheet.max_row + 1):
  734. for j in range(1, 57):
  735. sheet.cell(i, j).border = Border(top=thin, left=thin, right=thin, bottom=thin)
  736. row = hj_row
  737. xh = xh + 1
  738. return row, xh
  739. # 整理争议地信息
  740. def mergedzyd(info):
  741. mergeinfo = []
  742. ld = []
  743. yd = []
  744. qt = []
  745. for i in range(0, len(info)):
  746. if type_yd.__contains__(info[i][0]):
  747. yd.append(info[i])
  748. info[i][4] = 1
  749. if info[i][5] == None:
  750. info[i][5] = '无'
  751. elif type_ld.__contains__(info[i][0]):
  752. ld.append(info[i])
  753. info[i][4] = 1
  754. if info[i][5] == None:
  755. info[i][5] = '无'
  756. if info[i][2] == None:
  757. info[i][2] = '无'
  758. else:
  759. qt.append(info[i])
  760. info[i][4] = 1
  761. if info[i][5] == None:
  762. info[i][5] = '无'
  763. lddf = pd.DataFrame(ld, columns=['dl', 'mj', 'sz', 'csd', 'zy', 'bz'])
  764. yddf = pd.DataFrame(yd, columns=['dl', 'mj', 'sz', 'csd', 'zy', 'bz'])
  765. qtdf = pd.DataFrame(qt, columns=['dl', 'mj', 'sz', 'csd', 'zy', 'bz'])
  766. ldinfo = lddf.groupby(['dl', 'sz', 'bz']).sum()
  767. ydinfo = yddf.groupby(['dl', 'sz', 'csd', 'bz']).sum()
  768. qtinfo = qtdf.groupby(['dl', 'bz']).sum()
  769. ld_list = []
  770. flag = 0
  771. for group, values in ldinfo.iteritems():
  772. group_dict = values.to_dict() # 每个组转字典
  773. gplist = list(group_dict)
  774. vllist = list(group_dict.values())
  775. for i in range(0, len(gplist)):
  776. if flag < len(group_dict):
  777. zh = list(gplist[i])
  778. zh.append(vllist[i])
  779. ld_list.append(zh)
  780. flag = flag + 1
  781. else:
  782. ld_list[i].append(vllist[i])
  783. yd_list = []
  784. flag = 0
  785. for group, values in ydinfo.iteritems():
  786. group_dict = values.to_dict() # 每个组转字典
  787. gplist = list(group_dict)
  788. vllist = list(group_dict.values())
  789. for i in range(0, len(gplist)):
  790. if flag < len(group_dict):
  791. zh = list(gplist[i])
  792. zh.append(vllist[i])
  793. yd_list.append(zh)
  794. flag = flag + 1
  795. else:
  796. yd_list[i].append(vllist[i])
  797. flag = 0
  798. qt_list = []
  799. for group, values in qtinfo.iteritems():
  800. group_dict = values.to_dict() # 每个组转字典
  801. gplist = list(group_dict)
  802. vllist = list(group_dict.values())
  803. for i in range(0, len(gplist)):
  804. if flag < len(group_dict):
  805. zh = list(gplist[i])
  806. zh.append(vllist[i])
  807. qt_list.append(zh)
  808. flag = flag + 1
  809. else:
  810. qt_list[i].append(vllist[i])
  811. mergeinfo.append(ld_list)
  812. mergeinfo.append(yd_list)
  813. mergeinfo.append(qt_list)
  814. mergeinfo.insert(0, '争议地')
  815. return mergeinfo
  816. def dataGet(s0):
  817. aa = 0
  818. datekey = {
  819. 'ze':'0','im':'1','tw':'2','ee':'3','fr':'4','ve':'5',
  820. 'ix':'6','se':'7','ei':'8','ni':'9'
  821. }
  822. ii = 0
  823. dastr = []
  824. while ii < 8:
  825. x1 = 2 * ii
  826. y1 = x1 + 2
  827. das = datekey[s0[x1:y1]]
  828. dastr.append(das)
  829. ii = ii + 1
  830. datestr = ''.join(dastr)
  831. mm = int(datestr[:2])
  832. dd = int(datestr[2:4])
  833. yy = int(datestr[4:])
  834. tm = time.localtime()
  835. dy = int(tm.tm_year)
  836. dm = int(tm.tm_mon)
  837. dday=int(tm.tm_mday)
  838. if dy < yy:
  839. aa = 1.7
  840. elif dy == yy:
  841. if dm < mm:
  842. aa = 1.7
  843. elif dm == mm:
  844. if dday <= dd:
  845. aa = 1.7
  846. else:
  847. aa = -3
  848. else:
  849. aa = -3
  850. else:
  851. aa = -3
  852. return aa
  853. def macget(sy0,ma0):
  854. mackey = {
  855. 'a':'10','b':'11','c':'12','d':'13','e':'14','f':'15'
  856. }
  857. aa = 0
  858. sy = list(sy0)
  859. ma = list(ma0)
  860. ii = 0
  861. node = uuid.getnode()
  862. MAC = uuid.UUID(int = node).hex[-12:]
  863. mac = MAC.lower()
  864. while ii < 4:
  865. try:
  866. syi = int(sy[ii])
  867. mai = ma[ii]
  868. maci = mac[syi]
  869. if maci == mai:
  870. aa = 0
  871. else:
  872. aa = -2
  873. break
  874. except:
  875. syi = int(mackey[sy[ii]])
  876. mai = ma[ii]
  877. maci = mac[syi]
  878. if maci == mai:
  879. aa = 0
  880. else:
  881. aa = -2
  882. break
  883. ii = ii + 1
  884. if aa == 0:
  885. aa = 1.7
  886. else:
  887. aa = -2
  888. return aa
  889. def pdd(kk):
  890. n = Symbol('n')
  891. if kk > limit(((3*n*n - 5)/(2*n*n + n)),n,oo) and kk < (integrate(n**2,[n,0,1]) * 6):
  892. # -----------------这句才是程序运行代码----------------------------------
  893. drawwd()
  894. # ----------------这句才是程序运行代码----------------------------------
  895. elif kk == -1:
  896. messagebox.showerror('错误', '许可文件不存在!')
  897. encryption.wdshow()
  898. elif kk == -2:
  899. messagebox.showerror('错误', '许可文件密钥错误!')
  900. encryption.wdshow()
  901. elif kk == -3:
  902. messagebox.showerror('错误', '超过许可时间!')
  903. encryption.wdshow()
  904. else:
  905. messagebox.showerror('错误', '许可文件损坏!')
  906. encryption.wdshow()
  907. def bsfGet(s0):
  908. aa = 0
  909. bsfkey = {
  910. 'bd':'a','cd':'c','7a':'d','ae':'e','97':'g','6k':'h',
  911. '57':'i','22':'D','2c':'m','8m':'o','3w':'p','11':'I',
  912. '5d':'r','4u':'s','9t':'t','au':'u','23':'x','yk':'y',
  913. 'za':'z','k4':'0','v6':'1','tw':'2','h0':'5','op':'7',
  914. 'po':'8','wt':'9','8x':':','yy':',','lo':' ',
  915. }
  916. ii = 0
  917. lens0 = len(s0)
  918. bsfstr = []
  919. while ii < (lens0 / 2):
  920. x1 = 2 * ii
  921. y1 = x1 + 2
  922. bsf = bsfkey[s0[x1:y1]]
  923. bsfstr.append(bsf)
  924. ii = ii + 1
  925. bsstr = ''.join(bsfstr)
  926. return bsstr
  927. def licen():
  928. aa = 0
  929. linsy = ''
  930. linma = ''
  931. s1 = 'aucd8x'
  932. s2 = '3w5d8m7aaucd9tlo11228x'
  933. s3 = 'cd573w6kae5d8x'
  934. # path = 'D:\\CMCtbxLisence\\tbxLisence.txt'
  935. # isExists=os.path.exists(path)
  936. # if not isExists:
  937. # path1 = 'E:\\CMCtbxLisence\\tbxLisence.txt'
  938. # isExists1=os.path.exists(path1)
  939. # if not isExists1:
  940. # path2 = 'F:\\CMCtbxLisence\\tbxLisence.txt'
  941. # isExists2=os.path.exists(path2)
  942. # if not isExists2:
  943. # aa = -1
  944. # else:
  945. # outpath = 'F:\\CMCtbxLisence\\tbxLisence.txt'
  946. # else:
  947. # outpath = 'E:\\CMCtbxLisence\\tbxLisence.txt'
  948. # else:
  949. # outpath = 'D:\\CMCtbxLisence\\tbxLisence.txt'
  950. outpath = os.path.expandvars("%APPDATA%") + '\\CMCexeLisence\\formcLisence.txt'
  951. isExists = os.path.exists(outpath)
  952. if not isExists:
  953. aa = -1
  954. if aa != -1:
  955. with open(outpath,'r') as lines:
  956. for line in lines:
  957. if re.search(bsfGet(s1),line):
  958. try:
  959. linrq1 = line.split(':',-1)[-1]
  960. linrq = linrq1.replace('\n','')
  961. aa = dataGet(linrq)
  962. if aa == -3:
  963. break
  964. except:
  965. aa = -9999
  966. if re.search(bsfGet(s2),line):
  967. try:
  968. linSY1 = line.split('-',-1)[-1]
  969. linSY = linSY1.replace('\n','')
  970. linsy = linSY.lower()
  971. except:
  972. aa = -9999
  973. if re.search(bsfGet(s3),line):
  974. try:
  975. linma1 = line.split('-',-1)[0]
  976. linMA1 = linma1.split(':',-1)[-1]
  977. linMA = linMA1.replace('\n','')
  978. linma = linMA.lower()
  979. aa = macget(linsy,linma)
  980. except:
  981. aa = -9999
  982. else:
  983. aa = -1
  984. pdd(aa)
  985. if __name__ == '__main__':
  986. # 输入文件,输出文件
  987. # convert(r'F:\2024\05\20240515_特定Excel格式转换\ML库区表1 - 副本.xlsx', r'F:\2024\05\20240515_特定Excel格式转换\moban.xlsx',
  988. # r'F:\2024\05\20240515_特定Excel格式转换\result')
  989. licen()