Python 的pandas模块使用xlrd作为读取 excel 文件的默认引擎。但是,xlrd在其最新版本(从 2.0.1 版本开始)中删除了对 xls 文件以外的任何文件的支持。

xlsx files are made up of a zip file wrapping an xml file.

Both xml and zip have well documented security issues, which xlrd was not doing a good job of handling. In particular, it appeared that defusedxml and xlrd did not work on Python 3.9, which lead people to uninstall defusedxml as a solution, which is absolutely insane, but then so is sticking with xlrd 1.2 when you could move to openpyxl.

从官方的邮件中,说的应该是 xlsx 本身是由一个 zip 文件和 xml 的头文件构成的,但是 xml 和 zip 都有详细记录的安全问题,特别是,defusedxmlxlrd似乎在 Python 3.9 上不起作用,这导致人们卸载defusedxml作为解决方案,这绝对是疯了,但是,当然了,您也可以转移到openpyxl,或者仍然坚持使用xlrd 1.2

$ conda search xlrdLoading channels: done# Name                       Version           Build  Channelxlrd                           1.0.0          py27_0  conda-forgexlrd                           1.0.0          py27_1  conda-forgexlrd                           1.0.0          py35_0  conda-forgexlrd                           1.0.0          py35_1  conda-forgexlrd                           1.0.0          py36_0  conda-forgexlrd                           1.0.0          py36_1  conda-forgexlrd                           1.1.0          py27_1  pkgs/mainxlrd                           1.1.0  py27ha77178f_1  pkgs/mainxlrd                           1.1.0          py35_1  pkgs/mainxlrd                           1.1.0  py35h45a0a2a_1  pkgs/mainxlrd                           1.1.0          py36_1  pkgs/mainxlrd                           1.1.0  py36h1db9f0c_1  pkgs/mainxlrd                           1.1.0          py37_1  pkgs/mainxlrd                           1.1.0            py_2  conda-forgexlrd                           1.2.0          py27_0  pkgs/mainxlrd                           1.2.0          py36_0  pkgs/mainxlrd                           1.2.0          py37_0  pkgs/mainxlrd                           1.2.0            py_0  conda-forgexlrd                           1.2.0            py_0  pkgs/mainxlrd                           1.2.0    pyh9f0ad1d_1  conda-forgexlrd                           2.0.1    pyhd3eb1b0_0  pkgs/mainxlrd                           2.0.1    pyhd8ed1ab_3  conda-forge

上面的问题将导致您在使用pandas调用 xlsx excel 上的read_excel函数时收到一个错误,即不再支持 xlsx filetype。


为了解决这个问题,你可以:

  1. 安装 openpyxl 模块:这是另一个仍然支持 xlsx 格式的 excel 处理包。
  2. pandas中把默认的 engine 由原来的xlrd替换成openpyxl

# Install openyxlpip install openpyxl

# set engine parameter to "openpyxl"pd.read_excel(path, engine = 'openpyxl')

接下来,介绍一下 Python 读写 Excel 需要导入的xlrd(读),xlwd(写)模块的一些常用操作。

1. xlrd 模块

1.1 Excel 文件处理

  • 打开 excel 文件

import xlrdexcel = xlrd.open_workbook("data.xlsx")  
  • 获取并操作 sheet 工作表

sheet_names = excel.sheet_names()            # 返回book中所有工作表的名字, ['Sheet1', 'Sheet2', 'Sheet3']    excel.sheet_loaded(sheet_name or indx)   # 检查某个sheet是否导入完毕

# 以下三个函数都会返回一个 xlrd.sheet.Sheet() 对象sheet = excel.sheet_by_index(0)             # 通过索引获取,例如打开第一个 sheet 表格sheet = excel.sheet_by_name("sheet1")  # 通过名称获取,如读取 sheet1 表单sheet = excel.sheets()[0]                        # 通过索引顺序获取

sheet.row_values(0) #获取第一行的数据sheet.col_values(0) #获取第一列的数据sheet.nrows                #获取总共的行数sheet.ncols                #获取总共的列数
  • 遍历所有行

for i in range(0, sheet.nrows):    row_list = sheet.row_values(i) # 每一行的数据在row_list数组里

1.2 日期处理

import datetimefrom xlrd import xldate_as_datetime

xldate_as_datetime(43346.0, 0).strftime('%Y/%m/%d') # '2018/09/03'

2. xlwt 模块

2.1 创建 Book 工作簿(即 excel 工作簿)

import xlwtworkbook = xlwt.Workbook(encoding = 'utf-8')    # 创建一个workbook并设置编码形式

2.2 添加 sheet 工作表

worksheet = workbook.add_sheet('My Worksheet')  # 创建一个worksheet

2.3 向工作表中添加数据并保存

worksheet.write(1,0, label = 'this is test') # 参数对应行, 列, 值

workbook.save('save_excel.xls')  # 保存

Python 中常见的 TypeError 是什么?

2021-04-16

Python 列表、字典、元组的一些小技巧

2021-03-30

如何卸载 python setup.py install 安装的包?

2020-05-15

生物信息学 Python 入门之源码安装

2019-09-29

Python 文件与目录操作方法总结

2019-02-17

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Python Excel 操作 | xlrd+xlwt 模块笔记相关推荐

  1. python添加excel模块,Python Excel操作——xlrd、xlwd,,读取1、导入模块 i

    Python Excel操作--xlrd.xlwd,,读取1.导入模块 i 读取 1.导入模块 import xlrd 2.打开Excel文件读取数据 data = xlrd.open_workboo ...

  2. xlrd读取所有sheet名_Python3之excel操作——xlrd,xlwt,xlutils模块

    Python中操作excel有xlrd,xlwt,xlutils模块,openpyxl模块,xlsxwriter等模块,这里先介绍xlrd,xlwt,xlutils模块. xlrd是读excel的库, ...

  3. python中 xlrd/xlwt模块详解

    python中 xlrd/xlwt模块详解 1.什么是xlrd模块 python操作excel主要用到xlrd和xlwt两个库,即xlrd是读excel,xlwt是写excel库 一.安装xlrd模块 ...

  4. python合并表格源代码_Excel电子表格如何合并单元格,Python编程实践,xlwt模块的应用...

    #我要学Python#前面内容,我们详细了解了使用Python来操作Excel文件的一般方法.其中读取并通过Python中PyQt5模块展示了Excel文件的内容,详细方法参见下面的博文: 电子表格处 ...

  5. python处理excel表格实例-通过实例学习Python Excel操作

    这篇文章主要介绍了通过实例学习Python Excel操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.python 读取Excel # -* ...

  6. python的excel操作_通过实例学习Python Excel操作

    这篇文章主要介绍了通过实例学习Python Excel操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.python 读取Excel ? 1 ...

  7. python数据库操作之pymysql模块和sqlalchemy模块(项目必备)

    pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 1.下载安装 pip3 install pymysql 2.操作数据库 (1).执行sql #! ...

  8. python中对excel工作表的基础操作:xlrd、xlwt模块笔记

    模块介绍 (1)什么是xlrd模块? python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. (2)为什么使用xlrd模块? 在UI自动化 ...

  9. python xlwt模块写完excel表格怎么保存和关闭_Python操作Excel表格,xlwt模块的使用...

    Python可以操作Excel的模块不止一种,我习惯使用的写入模块是xlwt(一般都是读写模块分开的) 按照模块使用pip install xlwt 就行了,很常规的方式 直接进代码解析,本文源码 w ...

最新文章

  1. 数字图像处理- 3.4 空间滤波 and 3.5 平滑空间滤波器
  2. Windows Live Messenger Beta的邀请
  3. java的图形界面上传附件_Java图形界面(GUI) 动态获取上传或下载文件的路径问题...
  4. asp.net mvc 权限过滤和单点登录(禁止重复登录)
  5. 稳定婚姻问题:Gale–Shapley算法
  6. 字典:散列表、散列字典、关键字列表、集合与结构体
  7. pt-archiver数据归档
  8. 二叉树的学习:前中后序遍历方法
  9. 双稳态电路的两个稳定状态是什么_干货 | 常见的脉冲电路到底有何用途和特点?终于了解了!...
  10. 三分钟带你了解,什么是地理信息系统(GIS)
  11. AtCoder ABC172 E - NEQ(组合数 + 容斥原理)
  12. 基于HTML美中华传统文化题材网页项目的设计与实现 (纯HTML+CSS制作中国茶文化网站)...
  13. 怎样将pdf压缩得很小?如何把pdf压缩到最小?怎么把pdf压缩到最小?如何把pdf文档压缩变小?怎么将pdf文档压缩至更小?怎么把pdf压缩到最小方法软件网站有哪些?
  14. C语言实现shell
  15. 获取系统相册图片进行九宫布局
  16. 黑马程序员——经典C语言程序设计100例
  17. 设置input[type=number]不显示箭头
  18. Kubernetes学习笔记(二):Pod控制器详解:资源元信息、ReplicaSet、Deployment、DaemonSet、Job、CronJob
  19. 推荐这11款免费好用的 Mac 软件
  20. 大公司上中台,钱没了...小公司上中台,公司没了

热门文章

  1. 程序员语言也有鄙视链!某美团程序员爆料:筛选简历时,用go语言的基本不看!网友:当韭菜还当出优越感了!...
  2. 字节跳动秋招超6000人,渣本双非的出路都被谁堵死了?
  3. 三分钟基础:什么是拥塞控制?
  4. DBA很忙—MySQL的性能优化及自动化运维实践
  5. 亿级PV,常见性能优化策略总结与真实案例
  6. 与其焦虑成疾,不如静心学习
  7. 远程办公时,有哪些提高沟通效率的技巧?
  8. HTML5 定位 geolocation
  9. 04 Java面试题之数组
  10. Jmeter工具的使用——功能测试