各大大好!不好意思,今天又再發問python excel問題!!
data.xlsx是學生成績單:
分別是學號、國文、英文、數學、理化成績的分數
照片如下:
data2.xlsx是學生成績單:
分別是學號、國文、英文、數學、理化成績的分數
照片如下:
import openpyxl
import pandas as pd
import numpy as np
# 讀取第一個 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')
# 創建新的工作簿
wb3 = openpyxl.Workbook()
sheet3 = wb3.active
a1 = []
a2 = []
start = 1
end = 5
step = 5
while start <= max_row:
for i in range(start, min(end + 1, max_row + 1)):
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):
# 將要填入的資料放入 list
a1 = ["第1個檔案不同值的第{0}列={1}".format(i, cell_A.value)]
a2 = ["第2個檔案不同值的第{0}列={1}".format(i, cell_B.value)]
sheet3.append(a1)
sheet3.append(a2)
start += step
end += step
# 儲存新的 Excel 檔案
wb3.save('data3.xlsx')
執行結果玩完後,打開data3.xlsx內容,照片如下:
理想的data3.xlsx檔案內容,照片如下:
sheet3.append(a1)和sheet3.append(a2)這段填入data3.xlsx時,
方向是垂直的,有辦法改成橫向方式填入data3.xlsx檔嗎?
我該用python的pandas和numpy模組改寫嗎?