首页 > 编程语言 >Python操作Excel

Python操作Excel

时间:2022-09-02 20:35:37浏览次数:50  
标签:sh1 sheet 读取 Python 单元格 Excel book 操作 row

  • 数据处理是 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
  1. 代码实现

# 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)))
  1. 代码运行结果展示:

 四、openpyxl库使用--写入数据

  • openpyxl - 既可以读文件、也可以写文件、也可以修改Excel文件;但是不支持 xls 格式

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

  1. 使用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)
  1. 代码实现

# 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()
  1. 代码实现

# 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() # 输出完一行之后换行
  1. 运行结果

 

标签:sh1,sheet,读取,Python,单元格,Excel,book,操作,row
From: https://www.cnblogs.com/xiaoxiao-wu/p/16651127.html

相关文章

  • Python入门系列(八)日期时间、数学、json
    日期时间Python中的日期本身不是数据类型,但我们可以导入一个名为datetime的模块,将日期作为日期对象使用。importdatetimex=datetime.datetime.now()print(x)日期......
  • python脚本获取网页第3方登录的cookies
    以企业微信tapd网站为例,登录需要通过企业微信扫码,本文将讲述通过python脚本实现获取第3方登录cookies并将其保存到pc本地的方法,示例代码如下:fromseleniumimportwebdri......
  • python如何截长图
    网上查到有个第3方接口(网页截屏大师)可以实现截取网页长图,只能针对部分网站调用首先,先在https://www.screenshotmaster.com/注册一个账号,在用户中心获取到一个唯一的Token......
  • Python 报错:int() can't convert non-string with explicit base
    背景今天python操作二进制然后报错,记录一下>>>int(101,2)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:int()can'tconver......
  • python实现企业微信机器人自动发消息
    一)创建企业微信群机器人1)先创建一个测试用临时对话群操作步骤:先在手机端打开企业微信,点击右上角+按钮->发起群聊->联系人中选择2人点击确定,即可创建一个临时对话群2......
  • Python之DataFrame基础知识点
    https://blog.csdn.net/u012856866/article/details/118936961?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166210446116782391824184%2522%252C%2522scm%2......
  • delphi TMS FlexCel 导出PDF2
    TMSFlexCel导出PDF2属性和方法TFlexCelPdfExport.WorkbookpropertyWorkbook:TExcelFile要打印的Excel文件。TFlexCelPdfExport.CurrentPagepropertyCurrentP......
  • Python源码学习-Objects类型
    目录简介类型定义类型对象对象操作缓存池本文基于Python3.10.4。简介在python中,有两种类型可以保存bytes(字节)类型的数据。分别是bytes与bytearray。其中bytearray支持修......
  • python采集财经数据信息并作可视化~
    前言......
  • Python
    Python测试开发实战Python编程基础蚂蚁金服:Java阿里集团:Java,Python腾讯云:Python字节:python,go,phppycharm快捷指令ctrl+alt+s:打开软件设置ctrl+d:复制当前......