python实现Excel中使用一个sheet数据更新另一个sheet数据(openpyxl)

1.python操作.xlsx基础语法

 

1)导入import openpyxl

2)打开.xlsx文件

r = openpyxl.load_workbook("/Users/md/Desktop/test.xlsx")

3)获取某个sheet表数据

sheet0 = r.worksheets[0]

4)获取sheet的名字

name=sheet1.title

5)获取某一个单元格的数据

v=sheet1.cell(2,1).value

6)获取总行数

getRows=sheet1.max_row

7)获取总列数

getCols=sheet1.getSheet().max_column

8)修改某个单元格数据

sheet0.cell(2,3,‘word’) 

或  sheet0["B2"]="Peking"

切记:修改单元格书记之后,必须保存Excel文件,否则不生效

r.save(filename='/Users/md/Desktop/test.xlsx')

具体详细的python操作Excel可见:

利用Python读取和修改Excel文件(包括xls文件和xlsx文件)——基于xlrd、xlwt和openpyxl模块_THEAQING-CSDN博客_python读取xls文件

2.使用一个sheet数据更新另一个sheet数据,实现思路:

1)读取数据

2)获取第一个sheet的id值,获取第二个sheet的id值

3)先遍历第一个sheet的id1值,然后继续遍历第二个sheet的id2值,存在id1=id2时,将第二个sheet的某个元素赋值给第一个sheet的某个单元格

具体代码如下:

python实现Excel中使用一个sheet数据更新另一个sheet数据(openpyxl)_第1张图片

import openpyxl
class Read1():
    def read2(self):
        item=[]

        r = openpyxl.load_workbook("/Users/md/Desktop/test.xlsx")
        sheet0 = r.worksheets[0]
        sheet1 = r.worksheets[1]       #第二个sheet页就写1,第三个就写2,以此类推

        # print('fff=',sheet1.title)       #获取sheet的名字
        # print('hgg=',sheet1.cell(2,1).value)   #获取某一个单元格的数据
        # r.save(filename='/Users/md/Desktop/test.xlsx')
        
        a=[]
        b=[]
        for cell in list(sheet0.columns)[0]:  # 获取sheet0的id数据
            a.append(cell.value)
        a.remove(a[0])           #将第一行的数据'id'字段删除

        for cell in list(sheet1.columns)[0]:  # 获取sheet2的id数据
            b.append(cell.value)
        b.remove(b[0])         #将第一行的数据'id'字段删除

        for i in range(len(a)):
            for j in range(len(b)):
                if a[i] ==b[j]:
                    sheet0.cell(i+2,2,sheet1.cell(j+2,2).value)     #想获取第三列的,改成sheet0.cell(i+2,3,sheet1.cell(j+2,3).value)

        r.save(filename='/Users/md/Desktop/test.xlsx')

a=Read1()
b=a.read2()

你可能感兴趣的:(python,pycharm,开发语言)