From 6b2d447bf26ac2bb8b5cccad4d79beaba366bb60 Mon Sep 17 00:00:00 2001 From: 512song Date: Mon, 12 Sep 2022 09:17:51 +0800 Subject: [PATCH] 20220912 --- 体质检测管理.ipynb | 183 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) diff --git a/体质检测管理.ipynb b/体质检测管理.ipynb index e137c5e..51a7822 100644 --- a/体质检测管理.ipynb +++ b/体质检测管理.ipynb @@ -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",