2021年11月17日 星期三

Python-Openpyxl_Excel使用插入排序法進行排序

 使用插入排序法,對資料進行排序。




 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import openpyxl

# 讀取EXCEL檔案。
wb = openpyxl.load_workbook("D:\\Train\\Datainsertionsort.xlsx")
# 讀取工作表。
Sheet = wb['Data']

#調整Excel欄位宽度。
def Insertion_Sort():
#設定起始欄位。
# 讀取A這一行,判斷A有幾排使用。
colummn = Sheet['A']
# Len為列的長度。
Len = len(colummn)
#將所有筆數跑過一次。
for x in range(2,Len):
#插入排序法,將原位置和原位置加1的位置做比較,若原位置數較大和原位置加1後位置交換。
#原位置數較大和原位置加1後位置交換,在往回找是否有比原位置加1更大,有的話進行交換。
for i in range(x,1,-1):
#判斷原位置和原位置+1的位置數值較大進行交換。
if Sheet.cell(row=i, column=4).value[:3] > Sheet.cell(row=i+1, column=4).value[:3]:
#先將原位置放到temp。
temp=Sheet.cell(row=i, column=4).value
#原位置的值等於原位置+1的位置值。
Sheet.cell(row=i, column=4).value=Sheet.cell(row=i+1, column=4).value
#原位置+1的位置,等於Temp。
Sheet.cell(row=i+1, column=4).value=temp
##判斷原位置和原位置+1的位置數值較小中止。
elif Sheet.cell(row=i, column=4).value[:3] < Sheet.cell(row=i+1, column=4).value[:3]:
break
wb.save("D:\\Train\\Datainsertionsort.xlsx")

if __name__ == '__main__':
Insertion_Sort()


結果:



沒有留言:

張貼留言

Ubuntu-Journalctl查看系統日誌

 近期所使用Ubuntu系統24小時開著,進行跑Python程式使用,但跑個2~3天,排程就無法正常寄信,SSH連線也無法正常連線,經查看後為wifi連線問題,暫先使用腳本排程進行重開wifi。 以下為記錄Journalctl指令。 使用Journalctl來從系統日誌上查看看問...