Python一步步带你操作Excel

 更新时间:2022年08月01日 10:23:19   作者:测试界的飘柔  
这篇文章主要介绍了Python编写命令行脚本操作excel的方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下

➤数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件。因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道。Python处理Excel 常用的系列库有:xlrd、xlwt、xlutils、openpyxl

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

◈xlwt - 用于写入 Excel 文件,只支持.xls格式

◈xlutils - 操作 Excel 文件的实用工具,如复制、分割、筛选等

◈openpyxl - 既可以读文件、也可以写文件、也可以修改文件;但是,openpyxl 库不支持 xls 格式的Excel文档。

一、安装库的操作

打开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.使用openpyx写入数据的步骤

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.使用openpyx读取数据的步骤

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编写接口测试文档(以豆瓣搜索为例)

    python编写接口测试文档(以豆瓣搜索为例)

    接口测试的方式有很多,比如可以用工具(jmeter,postman)之类,也可以自己写代码进行接口测试,这篇文章主要给大家介绍了关于python编写接口测试文档,本文以豆瓣搜索功能为例,需要的朋友可以参考下
    2021-07-07
  • python django中8000端口被占用的解决

    python django中8000端口被占用的解决

    今天小编就为大家分享一篇python django中8000端口被占用的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python如何判断字符串是否仅包含数字

    Python如何判断字符串是否仅包含数字

    在用Python进行数据处理的时候,经常会遇到DataFrame中的某一列本应该是数值类型,但由于数据不规范导致在字段中夹杂了非数值类型,本文就介绍了Python如何判断字符串是否仅包含数字,感兴趣的可以了解一下
    2022-03-03
  • 排序算法之插入排序法解析

    排序算法之插入排序法解析

    这篇文章主要介绍了排序算法之插入排序法解析,插入排序法是一种简单但有效的排序算法,其基本思想是将一个待排序的元素逐个插入到已经排好序的元素序列中,直至所有元素都被插入完成,从而得到一个有序序列,需要的朋友可以参考下
    2023-07-07
  • Python使用flask作为web服务器的代码实现

    Python使用flask作为web服务器的代码实现

    Python Flask 框架是一个轻量级的 Web 框架,它简单易用,灵活多变,非常适合用于构建小型到中型规模的 Web 应用程序,本文给大家介绍了Python使用flask作为web服务器的代码实现,需要的朋友可以参考下
    2024-06-06
  • Python爬虫必备之XPath解析库

    Python爬虫必备之XPath解析库

    今天给大家带来的是Python爬虫的相关知识,文章围绕着XPath解析库展开,文中有非常详细的代码示例及介绍,需要的朋友可以参考下
    2021-06-06
  • Python使用Crypto库实现加密解密的示例详解

    Python使用Crypto库实现加密解密的示例详解

    这篇文章主要为大家详细介绍了Python如何使用Crypto库实现加密解密的功能,文中的示例代码讲解详细,对我们学习Python有一定的帮助,需要的可以参考一下
    2023-01-01
  • Python报mongod: error while loading shared libraries: libcrypto.so.1.1解决

    Python报mongod: error while loading shared libraries: l

    这篇文章主要介绍的是Python报mongod: error while loading shared libraries: libcrypto.so.1.1的解决方法,下面文章解决过程,需要的小伙伴可以参考一下
    2022-02-02
  • vue学习笔记之动态组件和v-once指令简单示例

    vue学习笔记之动态组件和v-once指令简单示例

    这篇文章主要介绍了vue学习笔记之动态组件和v-once指令,结合简单实例形式详细分析了vue.js动态组建点击切换相关操作技巧,需要的朋友可以参考下
    2020-02-02
  • Python:pycharm中虚拟环境venv的使用及说明

    Python:pycharm中虚拟环境venv的使用及说明

    文章介绍了虚拟环境的必要性和实践方法,虚拟环境可以帮助用户管理不同项目所需的Python版本和第三方模块,避免版本冲突和模块冲突,文章详细介绍了如何使用Python自带的`venv`模块创建和管理虚拟环境,并通过命令行和PyCharm两种方式构建虚拟环境
    2025-01-01

最新评论