目前接触到的 python 中用来对 excel 操作的模块包括:xlrd 和 xlwt,前者用来对 excel 进行读操作,后者用来进行写操作,这里先来说一下 xlrd 模块

一、xlrd 模块的安装

打开cmd 窗口,输入 pip install xlrd 安装完成即可,需要注意:默认安装的是最新版的 xlrd ,但是最新版已经不支持 .xlsx 文件,因此需要使用以下命令卸载并安装1.2版本:

pip uninstall xlrd #卸载已安装版本pip install xlrd==1.2.0 #安装1.2.0版本

二、xlrd模块的使用

1.导入模块并打开 .xlsx 工作簿

import xlrdwb = xlrd.open_workbook(filename)#filename 是文件的路径名,如下workbook = xlrd.open_workbook(filename=r'C:\Users\Windows10\Desktop\xlsx文件.xlsx')#open_workbook 返回的是一个对象

在 windows 上文件路径名采用反斜杠,而反斜杠在 python 中具有转义的作用,所以在字符串前面加上 r 来表示原始字符串,使路径名不产生转义;此外,如果路径带中文,也是需要加上 r

其实也可以在调用 open_workbook 函数时将路径名用斜杠表示,此时不需要再加 r ,如下:

wb = xlrd.open_workbook('C:/Users/cheng/Desktop/test.xlsx')

2.获取需要操作的 sheet 表格

import xlrdwb = xlrd.open_workbook('C:/Users/cheng/Desktop/test.xlsx')#1.通过索引,获取第一个 sheet 表格sheet1 = wb.sheets()[0]#2.通过索引顺序获取sheet2 = wb.sheet_by_index(1)#3.通过 sheet 名称获取sheet3 = wb.sheet_by_name('SoC')## 以上三个函数都会返回一个 xlrd.sheet.Sheet() 的对象#4.获取 wb 中的所有 sheet 名称,并返回一个列表names = wb.sheet_names()print(names)#判断 wb 中是否存在某个 sheet,返回 bool值  wb.sheet_loaded(sheet_name or index)#通过 sheet 名索引is_exist = wb.sheet_loaded('SoC')print(is_exist)#通过 sheet index 索引is_exist = wb.sheet_loaded(0)print(is_exist) 

上面的运行结果如下:

图片

3. 行操作 和 列操作

行列通用操作:

#获取 sheet 中的有效行数 和 有效列数,注意后面不带 ()row = sheet3.nrowscol = sheet3.ncolsprint(row, col)#获取一行中有多少列数据,其实就是有效列数num = sheet3.row_len(2)print(num)#获取指定行或者列中的所有单元格的数据,并将这些数据作为一个列表返回table_list = sheet3.row_values(rowx=1, start_colx=1, end_colx=None)print(table_list)table_list = sheet3.row_values(1)print(table_list)# rowx 表示的是获取第几行的数据# start_colx 表示从第几列开始获取,end_colx 表示第几列结束获取,end_colx 为None 表示结束没有限制table_list = sheet3.col_values(colx=0, start_rowx=0, end_rowx=None)print(table_list)table_list = sheet3.col_values(2)print(table_list)# colx表示是获取第几列的数据# start_rowx表示从索引为多少开始,end_rowx表示从索引为多少结束,end_rowx为None表示结束没有限制#获取该行中所有单元格对象组成的列表,每个元素的格式为 类型:值value = sheet3.row(0)print(value)# 获取某一列中的所有单元格的值以及其类型,组成列表返回value = sheet3.col(1)print(value)# 以切片的形式获取某一行的单元格的值及其类型,第一个参数是行数,第二个和第三个参数是切片参数,表示获取的列序号,左闭右开value = sheet3.row_slice(1, 1, 3)print(value)# 以切片的形式获取某一列的单元格的值及其类型,第一个参数是列数,第二个和第三个参数是切片参数,表示获取的行序号,左闭右开value = sheet3.col_slice(1, 1, 3)print(value)# 获取某一行中的每一个单元格的类型value = sheet3.row_types(1)print(value)print(type(value))# 获取某一列中的每一个单元格的类型value = sheet3.col_types(1)print(value)print(type(value))

运行结果如下:

在这里插入图片描述

行特有操作:

# 获取sheet 的所有生成器,返回一个列表,列表中的每一个元素是由每一行单元格对象组成的列表row = sheet3.get_rows()for one in row:    print(one)

运行结果如下:

图片

4. 单元格操作

#获取单元中的值print(sheet3.cell(0, 0).value)print(sheet3.cell_value(0, 0))#获取单元格的数据类型print(sheet3.cell_type(0, 0))

运行结果如下:
在这里插入图片描述

这里需要补充

python读取excel中单元格的内容返回的有5种类型ctype:

  • 0 empty
  • 1 string(text)
  • 2 number
  • 3 date
  • 4 boolean
  • 5 error

即date的ctype=3,这时需要使用xlrd的xldate_as_tuple来处理为date格式,先判断表格的ctype=3时xldate才能开始操作;

-END-


学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、自动化测试带你从零基础系统性的学好Python!

👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享]安全链接,放心点击

👉Python学习大礼包👈

在这里插入图片描述

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
在这里插入图片描述

👉Python必备开发工具👈

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python书籍和视频合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

👉Python面试刷题👈

👉Python副业兼职路线👈

在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以点击链接免费领取或者保存图片到wx扫描二v码免费领取保证100%免费

👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享]安全链接,放心点击

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐