Python Excel篩選未提交人員

2021-10-02 19:31:27 字數 2611 閱讀 3963

1.主要目標:對照原始檔(班級完整名單)找出目標檔案中的未提交人員

2.次要目標:為了程式的的適用性,可以自己選擇兩個檔案,再選擇對比列

思考之後,這個問題很簡單,其實只需要「兩個集合做差集」便可以得到,簡單來說如下所示:

'''獲取原始檔與目標檔案'''

sourcefile_path = filedialog.askopenfilename(title = 'please choose contrastive source file')#使用檔案選擇對話方塊獲取原始檔路徑

source_book = xlrd.open_workbook(sourcefile_path)#xlrd開啟路徑指向的excel檔案

source_sheet = source_book.sheet_by_index(0)#預設開啟第乙個表

targetfile_path = filedialog.askopenfilename(title = 'please choose contrastive target file')

target_book = xlrd.open_workbook(targetfile_path)

target_sheet = target_book.sheet_by_index(0)

source_tip = source_sheet.row_values(0)#獲取原始檔第一行的表頭資訊

target_tip = target_sheet.row_values(0)

'''建立對比項選擇視窗'''

contrastive_item = tk.tk()

contrastive_item.title('choose contrastive items')

#標籤ttk.label(contrastive_item, text="choose source item").grid(column=0, row=0)

ttk.label(contrastive_item, text="choose target item").grid(column=1, row=0)

#下拉列表1(包含原始檔表頭資訊)

source_item = ttk.combobox(contrastive_item, width=20)#建立下拉列表1並設定寬度

source_item['values'] = source_tip#將原始檔表頭資訊放入下拉列表1

source_item.grid(column=0, row=1)#按網狀分布放與2行1列

source_item.current(0)#預設選項為首項

#下拉列表2(包含目標檔案表頭資訊)

target_item = ttk.combobox(contrastive_item, width=20)#建立下拉列表2並設定寬度

target_item['values'] = target_tip#將目標檔案表頭資訊放入下拉列表1

target_item.grid(column=1, row=1)#按網狀分布放與2行2列

target_item.current(0)#預設選項為首項

def confirm():

source_list = source_sheet.col_values(source_tip.index(source_item.get()))[1:]#讀取原始檔,所選列除表頭外的資訊

target_list = target_sheet.col_values(target_tip.index(target_item.get()))[1:]#讀取目標檔案,所選列除表頭外的資訊

diff = list(set(source_list) - set(target_list))#list強轉為set,做差集,再轉為list

'''顯示結果'''

result_root = tk.tk()

result = tk.listbox(result_root)

for item in diff:

result.insert(0,item)

result.pack()

result_root.mainloop()

#按鈕action = ttk.button(contrastive_item, text="confirm", command=confirm) #建立按鈕,並設定響應為confirm

action.grid(column=2, row=1)#按網狀分布放與2行3列

contrastive_item.mainloop()

最重要的核心**只有一句:

GIT 修改GIT提交人記錄資訊

場景 公司內部有git賬號,以工號命名,個人賬號參與開源專案 提交開源專案的時候使用者名稱沒切換成個人賬戶,導致專案都是工號的提交記錄,違反了公司規定。參考 侵刪。git clone bare如 cd ant design.gitcopy以下指令碼到記事本,修改old name correct na...

Git 如何針對專案修改本地提交提交人的資訊

git 如果不進行修改的話,在預設情況下將會使用全域性的使用者名稱和電子郵件。但是在 github 中是通過使用者郵件來進行提交人匹配的。如何針對專案來修改提交的使用者資訊?針對 tortoisegit,你可以在專案中選擇 settings。然後選擇 git 的 local 選項。在 local 中...

Git 如何針對專案修改本地提交提交人的資訊

git 如果不進行修改的話,在預設情況下將會使用全域性的使用者名稱和電子郵件。但是在 github 中是通過使用者郵件來進行提交人匹配的。如何針對專案來修改提交的使用者資訊?針對 tortoisegit,你可以在專案中選擇 settings。然後選擇 git 的 local 選項。在 local 中...