各位大大好!我用python 寫excel遇到瓶頸
data.xlsx是學生成績單:
分別是學號、國文、英文、數學、理化成績的分數
照片如下:
data2.xlsx是另一位學生成績單:
分別是學號、國文、英文、數學、理化成績的分數
照片如下:
程式碼如下:
import openpyxl
# 讀取第一個 Excel 檔案
wb1 = openpyxl.load_workbook('data.xlsx')
sheet1 = wb1['sheet2']
# 讀取第二個 Excel 檔案
wb2 = openpyxl.load_workbook('data2.xlsx')
sheet2 = wb2['sheet2']
# 提取兩個工作表的最大行和最大列
max_row = max(sheet1.max_row, sheet2.max_row)
max_column = max(sheet1.max_column, sheet2.max_column)
print("max_row=", max_row, end='\n')
print("max_column=", max_column, end='\n')
a1 = []
a2 = []
# 用雙層 for 迴圈的方式分別遍歷行和列數據,然後判斷單一格數據的值是否相等
for i in range(1, max_row + 1):
row_a1 = [] # 用來存放第一個檔案的不同值
row_a2 = [] # 用來存放第二個檔案的不同值
for j in range(1, max_column + 1):
cell_A = sheet1.cell(i, j)
cell_B = sheet2.cell(i, j)
# 判斷不同的值
if cell_A.value != cell_B.value:
row_a1.append(cell_A.value)
row_a2.append(cell_B.value)
a1.append(row_a1)
a2.append(row_a2)
print("a1=", a1)
print("a2=", a2)
執行結果照片如下:
第一個問題:
抓到不同值是47時,就把data.xlsx檔的第二列填入a1,我想要印出結果是a1= [[], [36,47,58,63], []]和抓到不同值是90時,就把data2.xlsx檔的第二列填入a2,我想要印出結果是a1= [[], [36,90,58,63], []]
就是如果判斷不同值時,有辦法抓出(提取)data.xlsx和data2.xlsx檔的不同值和不同值的列放在a1和a2陣列,印出結果嗎?