Python 处理 excle 文件

本文介绍了一个使用Python脚本同步两个Excel文件数据的过程。脚本从一个Excel文件中读取ECR编号,并在另一个文件中查找对应的发布日期、逾期日期和计划实施日期,然后将这些信息写回到第一个文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding: utf-8 -*-
"""
Spyder Editor

This is a temporary script file.
"""
print("hello world")
import openpyxl
import os
import numpy as np
import operator
os.chdir('E:\\Eclipse\stock')
Current_work_directory = os.getcwd()
print (Current_work_directory)


# open ECR_Master_List.xlsx
wb_ecr_master_list = openpyxl.load_workbook('ECR_Master_List.xlsx')
type(wb_ecr_master_list)
print(wb_ecr_master_list.sheetnames)
ws_ecr_master_list = wb_ecr_master_list['EC list-Y2019']


# open PDM.xlsx
wb_pdm = openpyxl.load_workbook('PDM.xlsx')
type(wb_pdm)
print(wb_pdm.sheetnames)
ws_pdm= wb_pdm['PDM']

#get ecr release date


# get the ecr release date from pdm
def get_ecr_release_date(ws_ecr_master_list,ws_pdm):    
    for i in range(1,500,1):
        cell_name_ecr_number = 'A' + str(i)
        cell_name_ecr_release_date = 'F' + str(i)
 #       print (ws_ecr_master_list[cell_name_ecr_number].value)
        if ws_ecr_master_list[cell_name_ecr_number] != None:            
            for j in range(1,20000,1):
                cell_name_ecr_number_pdm = 'A' + str(j)
                cell_name_ecr_release_date_pdm = 'W' + str(j)
                if ws_ecr_master_list[cell_name_ecr_number].value == ws_pdm[cell_name_ecr_number_pdm].value:
                        ws_ecr_master_list[cell_name_ecr_release_date].value = ws_pdm[cell_name_ecr_release_date_pdm].value

# get ECR overdue date
def get_ecr_overdue_date(ws_ecr_master_list,ws_pdm):    
    for i in range(1,500,1):
        cell_name_ecr_number = 'A' + str(i)
        cell_name_ecr_overdue_date = 'G' + str(i)
 #       print (ws_ecr_master_list[cell_name_ecr_number].value)
        if ws_ecr_master_list[cell_name_ecr_number] != None:            
            for j in range(1,20000,1):
                cell_name_ecr_number_pdm = 'A' + str(j)
                cell_name_ecr_overdue_date_pdm = 'N' + str(j)
                if ws_ecr_master_list[cell_name_ecr_number].value == ws_pdm[cell_name_ecr_number_pdm].value:
                        ws_ecr_master_list[cell_name_ecr_overdue_date].value = ws_pdm[cell_name_ecr_overdue_date_pdm].value                        


# get ECR planned implement date
def get_ecr_planned_implement_date(ws_ecr_master_list,ws_pdm):    
    for i in range(1,500,1):
        cell_name_ecr_number = 'A' + str(i)
        cell_name_ecr_planned_implement_date = 'H' + str(i)
        ecr_implement_date = []
 #       print (ws_ecr_master_list[cell_name_ecr_number].value)
        if ws_ecr_master_list[cell_name_ecr_number] != None: 
            for j in range(1,20000,1):
                cell_name_ecr_number_pdm = 'A' + str(j)
                cell_name_ecr_alternative_date_pdm = 'H' + str(j)                
                if ws_ecr_master_list[cell_name_ecr_number].value == ws_pdm[cell_name_ecr_number_pdm].value:
                    ecr_implement_date.append(ws_pdm[cell_name_ecr_alternative_date_pdm].value)
           # print(ecr_implement_date)
           # print(get_max_value_from_list(ecr_implement_date))
            ws_ecr_master_list[cell_name_ecr_planned_implement_date] = get_max_value_from_list(ecr_implement_date)
 
# get the max value from list      
def get_max_value_from_list(list):
    max_value = ''
    for i in range(0,len(list),1):
        if operator.lt(max_value,list[i]):
            max_value = list[i]
    return max_value

#value =['2019-01-02','2019-01-01']

#print(get_max_value_from_list(value))
                        
get_ecr_release_date(ws_ecr_master_list,ws_pdm)
get_ecr_overdue_date(ws_ecr_master_list,ws_pdm)
get_ecr_planned_implement_date(ws_ecr_master_list,ws_pdm)


                       
                       

#save excel file

wb_ecr_master_list.save('ECR_Master_List.xlsx')   

        
# deactive
#for i in range(1,1000,1):
#    cell_name_ecr_number = 'A' + str(i)
#    cell_name_ecr_release_date = 'F' + str(i)
    #print (cell_name)
#    if ws_ecr_master_list[cell_name_ecr_number].value != None:
 #       print(ws_ecr_master_list[cell_name_ecr_number].value)
#        ws_ecr_master_list[cell_name_ecr_release_date] = 'PDM_ECR_release date'
#       print(ws_ecr_master_list[cell_name_ecr_release_date].value)
        

#for i in range(1,1000,1):
  #  cell_name_ecr_number_pdm = 'A' + str(i)
  #  cell_name_ecr_release_date_pdm = 'W' + str(i)
    #print (cell_name)
  #  if ws_pdm[cell_name_ecr_number_pdm].value != None:
  #      print(ws_pdm[cell_name_ecr_number_pdm].value)
 #       print(ws_pdm[cell_name_ecr_release_date_pdm].value)

 #       
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值