Python操作Excel全指南:xlwt、xlrd与openpyxl实战教程

Miles
Miles
发布时间:2026-10-15 | 5人浏览过
原创

本文详解Python处理Excel的三大常用库:xlwt、xlrd和openpyxl。涵盖安装方法、读写步骤及完整代码实现,重点讲解如何创建、修改和读取.xls与.xlsx文件,适用于数据自动化处理场景。

数据处理是 Python 的核心应用场景之一,而 Excel 作为最普及的数据处理工具,使得两者结合成为必然。在使用 Python 进行数据相关工作时,经常需要与 Excel 文件进行交互。Python 生态中处理 Excel 的主流库主要包括:xlrd、xlwt、xlutils 以及 openpyxl。

◈ xlrd:主要用于读取 Excel 文件,兼容 .xls 和 .xlsx 格式。

◈ xlwt:专门用于写入 Excel 文件,仅支持旧版的 .xls 格式。

◈ xlutils:提供 Excel 文件的操作工具集,支持复制、分割、筛选等功能。

◈ openpyxl:功能全面,支持读取、写入及修改 Excel 文件,但不支持 .xls 格式的文档。

一、安装库的操作

打开命令行终端(cmd),输入以下命令进行安装:pip install xlwt

打开命令行终端(cmd),输入以下命令进行安装:pip install xlrd

打开命令行终端(cmd),输入以下命令进行安装:pip install openpyxl

二、xlwt库使用

◈ xlwt:用于写入 Excel 文件,仅支持 .xls 格式。

1. 需求:创建一个新的 xls 文件,写入指定数据,并保存为 login.xls。

2. 使用 xlwt 写入数据的步骤

1)导包:import xlwt 2)创建一个文件对象:book=xlwt.Workbook() 3)添加一个 sheet 工作表:sh1=book.add_sheet(Sheetname) 4)添加内容:sh1.write(row,col,value) # 单元格行和列索引均从0开始 5)保存文件:book.save(filename)

3. 代码实现

# coding = utf-8
import xlwt
#创建一个excel文件对象
book = xlwt.Workbook() 
#添sheet工作表
sh1 = book.add_sheet('登录数据') 
sh1.write(0,0,'用户名') # 在A1单元格写入数据
sh1.write(0,1,'密码')   # 在B1单元格写入数据
row1 = ['test','test123']
# 结合循环写入一行数据
for i in range(len(row1)): 
    sh1.write(1,i,row1[i])
book.save('login.xls') # 保存文件

三、xlrd库使用

◈ xlrd:用于读取 Excel 文件,支持 .xls 和 .xlsx 格式。

1. 需求:从 login.xls 文件中读取指定的单元格、指定行、指定列或全部数据。

2. 使用 xlrd 读取数据的步骤

1) 导包:import xlrd 2) 打开一个文件:book=xlrd.open_workbook(filename) 3) 使用 sheet 工作表:sh1=book.sheet_by_name(sheet_name) 4) 读取 sheet 工作表的属性信息 print('sheet总行数',sh1.nrows) print('sheet总列数',sh1.ncols) 5) 读取 sheet 工作表存储的文本内容 1)读取一行:row1=sh1.row_values(row) # 行号从0开始 2)读取一列:col1=sh1.col_values(col) # 列号从0开始 3)读取一个单元格:cell_value=sh1.cell(row,col).value

3. 代码实现

# coding = utf-8
import xlrd
book = xlrd.open_workbook('login.xls')
sh1 = book.sheet_by_name('登录数据')
# 读取第一行的数据
row1 = sh1.row_values(0)
print('第一行数据:',row1)
# 读取第一列的数据
col1 = sh1.col_values(0)
print('第一列数据:',col1)
# 读取指定单元格的数据
cell = sh1.cell(1,1).value
print('A2单元格的值:',cell)
# 读取所有的数据
rows = sh1.nrows  # 获取当前工作表总的行数
for i in range(rows):
    print('所有数据打印,第{}行,数据为:{}:'.format(i,sh1.row_values(i)))

4. 代码运行结果展示:

四、openpyxl库使用-写入数据

◈ openpyxl:支持读取、写入及修改 Excel 文件;但不支持 .xls 格式。

1. 需求:向已存在的 test_api.xlsx 文件中写入接口测试结果,如下图所示。

2. 使用 openpyxl 写入数据的步骤

1)导包: import openpyxl 2)打开文件:book = openpyxl.load_workbook(filename) 3)使用 sheet 工作表:sheet = book[sheetname] 4) 单元格写入:sh1['F2'] = 'PASS' 或者 sh1.cell(row,col).value='FAIL' # 行和列的索引从1开始 6:保存文件: book.save(filename)

3. 代码实现

# coding = utf-8
import openpyxl
# 打开excel文件
book = openpyxl.load_workbook('test_api.xlsx')
# 通过工作表名字打开工作表
sh1 = book['register']
# 通过单元格的名称写入数据
sh1['I2'] = '不通过'
# 通过单元格的行、列写入数据
sh1.cell(3,9).value = '通过'
# 保存文件
book.save('test_api.xlsx')

五、openpyxl库使用-读取数据

1. 需求:读取 test_api.xls 文件中 login 工作表的指定单元格、指定行或所有数据。

2. 使用 openpyxl 读取数据的步骤

1)导包: import openpyxl 2)打开文件:book = openpyxl.load_workbook(filename) 3)使用 sheet 工作表:sheet = book[sheetname] 4)读取 sheet 工作表的属性信息 返回工作表的最大行数:sheet.max_row 返回工作表的最大列数: sheet.max_column 5) 读取 sheet 工作表存储的文本内容 1)按单元格读取:cell1 = sh1['A1'].value 或者 cell2= sh1.cell(row,col).value # 行和列的索引值从1开始 2) 按行读取

  for row in sheet.iter_rows(max_row=3):# 读取前3行数据
  for cell in row:
      print(cell.value,end='\t')
  print()

3. 代码实现

# coding = utf-8
import openpyxl
book = openpyxl.load_workbook('test_api.xlsx')
sh1 = book['login']
# 读取单元格数据
cell1 = sh1['A1'].value
print('A1单元格的值为:',cell1)
cell2 = sh1.cell(1,2).value
print('B1单元格的值为:',cell2)
# 读取前2行数据
print('读取前2行数据:') 
for row in sh1.iter_rows(max_row= 2): # 读取前2行数据
    for cell in row:
        print(cell.value,end='\t|\t') # 不换行输出这一行中每个单元格的值
    print() # 输出完一行之后换行
# 读取所有的数据
print('读取所有的数据:')
rows = sh1.max_row  # 获取当前工作表总的行数
for row in sh1.iter_rows(max_row=rows): # 读取所有的数据
    for cell in row:
        print(cell.value, end='\t|\t') # 不换行输出这一行中每个单元格的值
    print() # 输出完一行之后换行

4、运行结果

到此这篇关于 Python 一步步带你操作 Excel 的文章就介绍到这了,更多相关 Python Excel 内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表