Python使用openpyxl按工号条件合并Excel数据详解

今天早睡
今天早睡
发布时间:2026-10-13| 3人浏览过
原创

本文介绍如何使用Python的openpyxl库,根据唯一的工号字段,将两个Excel文件中的数据自动匹配并补充到目标表中。文章对比了xlwt与openpyxl的区别,详细讲解了单元格读写方法,并提供了完整的代码示例,实现基于工号的数据关联与内容更新。

Excel处理库的选择:xlwt与openpyxl对比

在Python处理Excel文件时,常用的库包括xlrd、xlwt和openpyxl。了解它们之间的差异有助于选择合适的工具。

这些库都用于操作Excel文件,但核心区别在于写入功能的支持范围。

xlwt主要针对Excel 2007及更早版本(.xls格式),其限制是每个工作表最多包含65535行。相比之下,openpyxl专为Excel 2007之后的版本(.xlsx格式)设计,对文件大小没有行数限制。

此外,两者在读写速度上也有差异。xlrd和xlwt的读写性能通常优于openpyxl,但xlwt无法生成.xlsx格式文件。

openpyxl基础用法与单元格操作

接下来重点介绍openpyxl的具体用法。

更多详细信息可参考官方文档。

首先需要了解Worksheet.cell()方法,这是访问和操作单元格的关键接口。

该方法支持通过行号和列号来定位单元格,例如:

d = ws.cell(row=4, column=2, value=10)

要获取特定单元格的数据,可以使用cell_value属性或cell方法。


#通过坐标读取表格中的数据
cell_value1=sheet0.cell_value(y,x)

写入数据时,可以直接赋值给单元格坐标,或使用append方法添加整行数据。


import openpyxl
import datetime
wb = openpyxl.Workbook()
ws = wb.active
ws['A1'] = 520
ws.append([1,2,3])
ws['A3'] = datetime.datetime.now()
wb.save("F:/demo.xlsx")

更新现有数据时,只需重新赋值即可,无需删除原内容。


import openpyxl
'''
操作Excel

实战:按工号条件合并Excel数据

具体需求场景:需要将“数据2”中的信息补充到“数据1”中,关联依据是两者都包含唯一的工号字段。


'''
def excel():
  wb1 = openpyxl.load_workbook('数据1.xlsx')  #路径
  sheet1 = wb1.active
  wb2 = openpyxl.load_workbook('数据2.xlsx')
  sheet2 = wb2.active
  for i in range(2, 1211): #数据1.xlsx的数据量
    id2 = sheet2.cell(i, 2).value  #获取数据1唯一工号
    for j in range(2, 1225): #数据2.xlsx的数据量
      id1 = sheet1.cell(j, 2).value #获取数据2唯一工号
      if(id1 == id2):
        sheet1.cell(j, 5).value = sheet2.cell(i, 5).value  #赋值
        sheet1.cell(j, 8).value = sheet2.cell(i, 1).value
        sheet1.cell(j, 7).value = sheet2.cell(i, 6).value
  wb1.save('xg3.xlsx') #存入到一张新的excel表中

if __name__ == "__main__":
  excel()

通过遍历两个工作簿,匹配工号并将对应字段值复制到目标单元格,最后保存为新文件。

以上介绍了利用Python对Excel按条件进行内容补充的方法。希望本文能帮助大家解决实际问题,如有任何疑问,欢迎留言交流。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。