From 34bbfe236a6addab4ef168c15a738e99f95fc45b Mon Sep 17 00:00:00 2001 From: Dawn_Ocean <1785590531@qq.com> Date: Mon, 25 Dec 2023 23:08:31 +0800 Subject: [PATCH] Improved: User Friendly --- README.md | 8 +++++++- main.py | 25 ++++++++++++++++++++++--- 值班排班表示例.xlsx | Bin 0 -> 11788 bytes 身份信息表示例.xlsx | Bin 0 -> 15932 bytes 4 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 值班排班表示例.xlsx create mode 100644 身份信息表示例.xlsx diff --git a/README.md b/README.md index 03c6e3a..ed21284 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ # HonorHours -实现自动由维修排班表转化为荣誉小时数登记表格 \ No newline at end of file +## 功能 +实现自动由维修排班表转化为荣誉小时数登记表格 + +## 使用方法 +按照值班排班表格示例与身份信息表格示例填写表格。 + +将值班排班表格与身份信息表格与程序放在同一个目录下,运行程序,按照指示操作即可。 \ No newline at end of file diff --git a/main.py b/main.py index f76453d..1ae213b 100644 --- a/main.py +++ b/main.py @@ -1,10 +1,23 @@ import pandas as pd import time, datetime from math import floor +import os # Read & Process ID table -identities_path = r'./identities.xls' +items = os.listdir(os.path.abspath('.')) +print("在当前目录共有以下文件:") +file_index = 0 +for item in items: + if item != "main.py" and item != "main.exe": + file_index += 1 + print(f"{file_index} - {item}") +id_index = int(input("请选择身份证列表(输入数字后回车)")) +duty_index = int(input("请选择值班排班表(输入数字后回车)")) +identities_path = r'./' + items[id_index - 1] +duty_path = r'./' + items[duty_index - 1] + +print("正在读取身份信息...") identities = pd.read_excel(identities_path, sheet_name= "Sheet1") id_dict = {} @@ -14,9 +27,10 @@ for name in identities["姓名"]: id_dict[name] = identities["身份证号码"][index] index += 1 -# Read & Calculate Honor Hours -duty_path = r'./duty.xlsx' +print("读取完毕!") +# Read & Calculate Honor Hours +print("正在读取值班信息...") duty = pd.read_excel(duty_path, sheet_name= "Sheet1") hours_dict = {} @@ -46,7 +60,10 @@ for member in hours_dict.keys(): hour /= 2 hours_dict[member] = hour +print("读取完毕!") + # Generate Honor Hour table +print("正在生成信息填报表格...") hour_path = r'./hour.xlsx' id_list = [] @@ -57,4 +74,6 @@ df = pd.DataFrame({"姓名": hours_dict.keys(), "身份证号码": id_list, "荣 df = df.set_index("姓名") df.to_excel(hour_path) +input("生成完毕!在当前文件夹下,文件名为 hour.xlsx,按回车键退出...") + # TODO: Write to Document diff --git a/值班排班表示例.xlsx b/值班排班表示例.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4c727e65ea4dd2081af33e017593d94767471e84 GIT binary patch literal 11788 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 Dy(sqA literal 0 HcmV?d00001 diff --git a/身份信息表示例.xlsx b/身份信息表示例.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..94e2588dc56c3352ef2f9a94c2fe2ff3727bf9fd GIT binary patch literal 15932 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 L+9V72kAMFU3V@JB literal 0 HcmV?d00001