目前接触到的 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%免费
】文章来源:https://www.toymoban.com/news/detail-769114.html
👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享](安全链接,放心点击)
文章来源地址https://www.toymoban.com/news/detail-769114.html
到了这里,关于python中xlrd模块的基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!