Python Excel 操作 | xlrd+xlwt 模块笔记
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 都有详细记录的安全问题,特别是,defusedxml
和xlrd
似乎在 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。
为了解决这个问题,你可以:
- 安装 openpyxl 模块:这是另一个仍然支持 xlsx 格式的 excel 处理包。
在
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 模块笔记相关推荐
- python添加excel模块,Python Excel操作——xlrd、xlwd,,读取1、导入模块 i
Python Excel操作--xlrd.xlwd,,读取1.导入模块 i 读取 1.导入模块 import xlrd 2.打开Excel文件读取数据 data = xlrd.open_workboo ...
- xlrd读取所有sheet名_Python3之excel操作——xlrd,xlwt,xlutils模块
Python中操作excel有xlrd,xlwt,xlutils模块,openpyxl模块,xlsxwriter等模块,这里先介绍xlrd,xlwt,xlutils模块. xlrd是读excel的库, ...
- python中 xlrd/xlwt模块详解
python中 xlrd/xlwt模块详解 1.什么是xlrd模块 python操作excel主要用到xlrd和xlwt两个库,即xlrd是读excel,xlwt是写excel库 一.安装xlrd模块 ...
- python合并表格源代码_Excel电子表格如何合并单元格,Python编程实践,xlwt模块的应用...
#我要学Python#前面内容,我们详细了解了使用Python来操作Excel文件的一般方法.其中读取并通过Python中PyQt5模块展示了Excel文件的内容,详细方法参见下面的博文: 电子表格处 ...
- python处理excel表格实例-通过实例学习Python Excel操作
这篇文章主要介绍了通过实例学习Python Excel操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.python 读取Excel # -* ...
- python的excel操作_通过实例学习Python Excel操作
这篇文章主要介绍了通过实例学习Python Excel操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.python 读取Excel ? 1 ...
- python数据库操作之pymysql模块和sqlalchemy模块(项目必备)
pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 1.下载安装 pip3 install pymysql 2.操作数据库 (1).执行sql #! ...
- python中对excel工作表的基础操作:xlrd、xlwt模块笔记
模块介绍 (1)什么是xlrd模块? python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. (2)为什么使用xlrd模块? 在UI自动化 ...
- python xlwt模块写完excel表格怎么保存和关闭_Python操作Excel表格,xlwt模块的使用...
Python可以操作Excel的模块不止一种,我习惯使用的写入模块是xlwt(一般都是读写模块分开的) 按照模块使用pip install xlwt 就行了,很常规的方式 直接进代码解析,本文源码 w ...
最新文章
- 数字图像处理- 3.4 空间滤波 and 3.5 平滑空间滤波器
- Windows Live Messenger Beta的邀请
- java的图形界面上传附件_Java图形界面(GUI) 动态获取上传或下载文件的路径问题...
- asp.net mvc 权限过滤和单点登录(禁止重复登录)
- 稳定婚姻问题:Gale–Shapley算法
- 字典:散列表、散列字典、关键字列表、集合与结构体
- pt-archiver数据归档
- 二叉树的学习:前中后序遍历方法
- 双稳态电路的两个稳定状态是什么_干货 | 常见的脉冲电路到底有何用途和特点?终于了解了!...
- 三分钟带你了解,什么是地理信息系统(GIS)
- AtCoder ABC172 E - NEQ(组合数 + 容斥原理)
- 基于HTML美中华传统文化题材网页项目的设计与实现 (纯HTML+CSS制作中国茶文化网站)...
- 怎样将pdf压缩得很小?如何把pdf压缩到最小?怎么把pdf压缩到最小?如何把pdf文档压缩变小?怎么将pdf文档压缩至更小?怎么把pdf压缩到最小方法软件网站有哪些?
- C语言实现shell
- 获取系统相册图片进行九宫布局
- 黑马程序员——经典C语言程序设计100例
- 设置input[type=number]不显示箭头
- Kubernetes学习笔记(二):Pod控制器详解:资源元信息、ReplicaSet、Deployment、DaemonSet、Job、CronJob
- 推荐这11款免费好用的 Mac 软件
- 大公司上中台,钱没了...小公司上中台,公司没了