This commit is contained in:
512song committed 2022-09-12 09:17:51 +08:00
1 parent f463c8d49a
commit 6b2d447bf2
1 file changed
+183
+183
View File
@@ -1021,6 +1021,137 @@
" "
]
},
{
"cell_type": "markdown",
"id": "2c1c84a7-2ca3-4d1a-ba9c-11c813875d7c",
"metadata": {},
"source": [
"## 导出人员成绩至Excel表"
]
},
{
"cell_type": "markdown",
"id": "e4c3fec0-9a02-4229-921b-7cba691871d7",
"metadata": {},
"source": [
"### 通过列表写入excel"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "03a9d860-e343-4768-8fda-b11294fbc665",
"metadata": {
"execution": {
"iopub.execute_input": "2022-09-12T00:14:20.615027Z",
"iopub.status.busy": "2022-09-12T00:14:20.613727Z",
"iopub.status.idle": "2022-09-12T00:14:22.286149Z",
"shell.execute_reply": "2022-09-12T00:14:22.283937Z",
"shell.execute_reply.started": "2022-09-12T00:14:20.614914Z"
},
"tags": []
},
"outputs": [],
"source": [
"import json\n",
"import openpyxl\n",
"\n",
"items = ['体重','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']\n",
"title = ['编号','姓名','BMI','肺活量','握力','坐位体前屈','纵跳','俯卧撑','一分钟仰卧起坐','单脚站立','选择反应时','台阶指数']\n",
"filename = 'data/result_cl.json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"\n",
"list1 = []\n",
"for k, v in dict1.items():\n",
" list2 = []\n",
" list2.append(k)\n",
" list2.append(v['name'])\n",
" for item in items:\n",
" if item in v.keys():\n",
" list2.append(v[item][1])\n",
" else:\n",
" list2.append('')\n",
" \n",
" \n",
" list1.append(list2)\n",
"filename = '长岭体检人员得分情况表.xlsx'\n",
"wb = openpyxl.Workbook()\n",
"sheet = wb.active\n",
"sheet.append(title)\n",
"for row in list1:\n",
" sheet.append(row)\n",
" \n",
"wb.save(filename)"
]
},
{
"cell_type": "markdown",
"id": "36ceaf73-7f45-4a28-acc8-823e19d27c81",
"metadata": {},
"source": [
"### 逐行写入excel"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f707aaff-993d-4b0f-a653-61e79718fcfc",
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"import openpyxl\n",
"\n",
"filename = 'all_data.json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"list1 = []\n",
"for item in dict1:\n",
" for k in item.keys():\n",
" list1.append(k)\n",
"list2 = set(list1)\n",
"list2.remove('dw')\n",
"list2.remove('sex')\n",
"list2.remove('name')\n",
"list2.remove('age')\n",
"list2.remove('身高')\n",
"list2.remove('bh')\n",
"col = {}\n",
"col['bh'] = 'B'\n",
"col['name'] = 'C'\n",
"col['sex'] = 'D'\n",
"col['age'] = 'E'\n",
"col['dw'] = 'A'\n",
"s ='FGHIJKLMNOPQRST'\n",
"n = 0\n",
"for item in list2:\n",
" col[item] = s[n]\n",
" n += 1\n",
"#print(col)\n",
"filename = '体检人员得分情况表.xlsx'\n",
"wb = openpyxl.Workbook()\n",
"sheet = wb.active\n",
"sheet['A1'] = '单位'\n",
"sheet['B1'] = '测试编号'\n",
"sheet['C1'] = '姓名'\n",
"sheet['D1'] = '性别'\n",
"sheet['E1'] = '年龄'\n",
"for k, v in col.items():\n",
" if k == '体重':\n",
" sheet[f'{v}1'] = 'BMI'\n",
" else:\n",
" sheet[f'{v}1'] = k\n",
"n = 2\n",
"for item in dict1:\n",
" #sheet[f'A{n}'] = n-1\n",
" for k, v in item.items():\n",
" if k != '身高':\n",
" sheet[f'{col[k]}{n}'] = v\n",
" n += 1 \n",
"wb.save(filename) \n"
]
},
{
"cell_type": "markdown",
"id": "95df2637-7898-4446-bb8a-70d881bd9e44",
@@ -1153,6 +1284,58 @@
"wb.save(filename)"
]
},
{
"cell_type": "markdown",
"id": "85072cce-72a2-4494-8c99-bacd65024546",
"metadata": {},
"source": [
"## 根据excel表查询人员测试成绩"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "42288b9a-5680-4f34-a4b8-26e85c24219d",
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"import openpyxl\n",
"\n",
"# 获取人员信息\n",
"filename = 'data/安庆炼化人员名单.json'\n",
"with open(filename,'r') as fl:\n",
" dict1 = json.load(fl)\n",
"list1 = []\n",
"person = {}\n",
"\n",
"for k, v in dict1.items():\n",
" person[k] = v['name'].strip()+' '+v['unit'].strip()\n",
"#print(person)\n",
"# 获取符合条件人员信息\n",
"dict1 = {}\n",
"filename = 'data/一人一策汇总(监测项目统计)2022.xlsx'\n",
"wb = openpyxl.load_workbook(filename)\n",
"sheet = wb.active\n",
"for n in range(4, sheet.max_row+1):\n",
" name = sheet.cell(n, 3).value\n",
" unit = sheet.cell(n, 2).value\n",
" #print(name)\n",
" s = name.strip()+' '+unit.strip()\n",
" if s in person.values():\n",
" #print(name,unit)\n",
" list1.append(s)\n",
" elif name in person.values() and unit not in person.values():\n",
" print(name,'部门不一致')\n",
" else:\n",
" print(name,'not found')\n",
"for item in list1:\n",
" for k, v in person.items():\n",
" if item == v:\n",
" dict1[k] = v.split(' ')[0]\n",
"print(dict1)"
]
},
{
"cell_type": "markdown",
"id": "43cc57b0-aebc-4315-b48f-9268e754bebb",