1. 程式人生 > 實用技巧 >python操作excel資料對比

python操作excel資料對比

自用程式碼
import openpyxl
import os

# 第一步:開啟工作簿
basedir = os.path.dirname(__file__)
upload_path = os.path.join(basedir, 'data.xlsx')
upload_path2 = os.path.join(basedir, 'product.xlsx')
wb = openpyxl.load_workbook(upload_path, data_only=True)
wb2 = openpyxl.load_workbook(upload_path2, data_only=True)
# 第二步:選取表單
sh = wb['出']
sh2 = wb2['1']
print(sh.cell(1, 1).value)
print(sh2.cell(1, 1).value)
# 第三步:讀取資料
# 引數 row:行  column:列


for i in range(1702):
    code1 = sh.cell(i + 2, 2).value
    # print(code1)

    for j in range(334):

        zx = sh2.cell(j + 2, 1).value
        # print(zx)
        try:

            code2 = int(zx)
            code1 = int(code1)
            if code1 == code2:
                print(code1)
                print(i + 2)
                # sh2.cell(j + 2, 8).value = sh.cell(i + 2, 3).value
                # sh2.cell(j + 2, 9).value = sh.cell(i + 2, 5).value
                sh.cell(i + 2, 3).value = sh2.cell(j + 2, 5).value
                sh2.cell(i + 2, 7).value = "寫入成功"
                # sh.cell(i + 2, 9).value = sh2.cell(j + 2, 5).value
        except:
            pass

wb.save('a1.xlsx')
wb2.save('a2.xlsx')

# print(sh['B3'] .value)
# # 按行讀取資料 list(sh.rows)
# print(list(sh.rows)[1:])     # 按行讀取資料,去掉第一行的表頭資訊資料
# for cases in list(sh.rows)[1:]:
#     case_id =  cases[0].value
#     case_excepted = cases[1].value
#     case_data = cases[2].value
#     print(case_excepted,case_data)
# # 關閉工作薄
# wb.close()