iT邦幫忙

0

python excel問題2

  • 分享至 

  • xImage

各位大大好!我用python 寫excel遇到瓶頸/images/emoticon/emoticon04.gif

data.xlsx是學生成績單:
分別是學號、國文、英文、數學、理化成績的分數
照片如下:
https://ithelp.ithome.com.tw/upload/images/20231216/20145992ugi4aesbQM.png

data2.xlsx是另一位學生成績單:
分別是學號、國文、英文、數學、理化成績的分數
照片如下:
https://ithelp.ithome.com.tw/upload/images/20231216/20145992qoiI8DsXlH.png

程式碼如下:

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)

執行結果照片如下:
https://ithelp.ithome.com.tw/upload/images/20231216/20145992CFRk8VXYJd.png

第一個問題:
抓到不同值是47時,就把data.xlsx檔的第二列填入a1,我想要印出結果是a1= [[], [36,47,58,63], []]和抓到不同值是90時,就把data2.xlsx檔的第二列填入a2,我想要印出結果是a1= [[], [36,90,58,63], []]
就是如果判斷不同值時,有辦法抓出(提取)data.xlsx和data2.xlsx檔的不同值和不同值的列放在a1和a2陣列,印出結果嗎?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答