数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件。因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道。

如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行处理,Excel 也支持此格式。但标准的 Excel 文件(xls/xlsx)具有较复杂的格式,并不方便像普通文本文件一样直接进行读写,需要借助第三方库来实现。

常用的库是 python-excel 系列:

xlrd、xlwt、xlutils

xlrd - 读取 Excel 文件

xlwt - 写入 Excel 文件

xlutils - 操作 Excel 文件的实用工具,如复制、分割、筛选等

尽管这是目前被用得最多的 Excel 库,我还是很想吐槽为什么这三个包不能放在一个模块里……另外它们有个缺陷,就是只能处理 xls 文件。如果你想用新版本的 xlsx,可以考虑 openpyxl 和 xlsxwriter。

不过今天只说说这三个。

安装

安装的方法没啥特别的,只是得装三遍。可以下载安装包、下载代码压缩包、或者通过 pip 等。可参考 如何安装 Python 的第三方模块 - Crossin的编程教室 - 知乎专栏

如果安装过之前推荐的 anaconda,那么就已经有了 xlrd 和 xlwt,但 xlutils 没有附带在安装包中,使用时仍需另行安装。

读取

结合一段简单的代码来看:

import xlrd # 打开 xls 文件 book = xlrd.open_workbook("test.xls") print "表单数量:", book.nsheets print "表单名称:", book.sheet_names() # 获取第1个表单 sh = book.sheet_by_index(0) print u"表单 %s 共 %d 行 %d 列" % (sh.name, sh.nrows, sh.ncols) print "第二行第三列:", sh.cell_value(1, 2) # 遍历所有表单 for s in book.sheets(): for r in range(s.nrows): # 输出指定行 print s.row(r)

测试文件:

输出结果:

表单数量: 2

表单名称: [u'Group.A', u'Group.B']

表单 Group.A 共 7 行 3 列

第二行第三列: 15.0

[text:u'Rank', text:u'Team', text:u'Points']

[number:1.0, text:u'Brazil', number:15.0]

[number:2.0, text:u'Russia', number:12.0]

...

常用的方法:

open_workbook 打开文件

sheet_by_index 获取某一个表单

sheets 获取所有表单

cell_value 获取指定单元格的数据

写入

还是看代码:

import xlwt # 创建 xls 文件对象 wb = xlwt.Workbook() # 新增一个表单 sh = wb.add_sheet('A Test Sheet') # 按位置添加数据 sh.write(0, 0, 1234.56) sh.write(1, 0, 8888) sh.write(2, 0, 'hello') sh.write(2, 1, 'world') # 保存文件 wb.save('example.xls')

生成文件:

常用的方法:

Workbook 创建文件对象

add_sheet 新增一个表单

write 在指定单元格写入数据

修改

很遗憾,并没有直接修改 xls 文件的方法。通常的做法是,读取出文件,复制一份数据,对其进行修改,再保存。

在复制时,需要用到 xlutils 中的方法。

from xlrd import open_workbook from xlutils.copy import copy # 打开文件 rb = open_workbook("example.xls") # 复制 wb = copy(rb) # 选取表单 s = wb.get_sheet(0) # 写入数据 s.write(0, 1, 'new data') # 保存 wb.save('example.xls')

修改后文件:

特别要注意的是,选取读取表单时,要使用 sheet_by_index,而在选取写入表单时,则要用 get_sheet。不要问我为什么,我也很想知道这么设定的用意何在……

时间转换

如果表单中有时间格式的数据,通过处理之后,你会发现时间数据出了差错。

输出单元格内容:

[number:8888.0, xldate:42613.0]

因为这里 xldate 有自己的格式定义。如果要使用正确的格式,必须转换:

new_date = xlrd.xldate.xldate_as_datetime(date, book.datemode)

date 是对应单元格的数据,book 是打开的文件对象。

另外,在打开文件时,加上参数 formatting_info=True,可以保证在时间数据在 copy 时保持原样。

写入时间数据,则可通过此方法创建 excel 的时间对象:

xlrd.xldate.xldate_from_datetime_tuple

或者通过 xlwt.easyxf 指定时间格式:

style = xlwt.easyxf(num_format_str='D-MMM-YY') ws.write(1, 0, datetime.now(), style)

具体细节及更多功能这里不展开说明。

python与excel-Python与Excel之间的交互相关推荐

  1. python与excel互通_【python】python vs Excel ( 与mysql数据库之间的交互)

    [python]python vs Excel ( 与mysql数据库之间的交互) 通过python与mysql数据库做交互 到目前为止大部分案例的演示数据都是基于文件进行读取的.那么python如何 ...

  2. python数据驱动测试_python数据驱动--Excel维护测试用例

    自动化测试经常使用csv文件进行数据驱动测试,读写方法总结如一下 第1步: 学会读取CSV文件 CSV文件.jpg 代码参考.jpg ''' Created on 2018年3月1日 @author: ...

  3. 用python处理excel数据做函数_如何使用python通过函数式编程完成excel中的数据处理及分析工作...

    Excel是数据分析中最常用的工具,本篇文章通过python与excel的功能对比介绍如何使用python通过函数式编程完成excel中的数据处理及分析工作.在Python中pandas库用于数据处理 ...

  4. python处理excel的书籍_从Excel到Python:用Python轻松处理Excel数据

    目录 第1章 Python基础--学习Python必知必会1 1.1 什么是Python2 1.2 为什么要学习用Python处理Excel表格2 1.3 手把手教你安装Python2 1.3.1 下 ...

  5. 学Python划重点 五 (处理Excel、Word、PDF实例)

    一.Python 处理Excel Python 实现对excel 文件的读写功能主要有三个模块:xlwt .xlrd 和openpyxl . 这里用openpyxl模块. Python 没有自带ope ...

  6. excel集成python插件,DataNitro最新版|excel调用Python插件(DataNitro) v1.0免费最新版_星星软件园...

    DataNitro是为开发者打造的excel调用python插件,使用这款插件用户可以通过python库来处理电子表格中的数据,无需手工处理就可以完成各种数据的制作.处理或者转换等,这个插件还可以辅助 ...

  7. python怎样在已有excel文件指定行写入-Python中使用第三方库xlrd来写入Excel文件示例...

    继上一篇文章使用xlrd来读Excel之后,这一篇文章就来介绍下,如何来写Excel,写Excel我们需要使用第三方库xlwt,和xlrd一样,xlrd表示read xls,xlwt表示write x ...

  8. excel调用python编程-用Python如何开发Excel宏脚本?新手必学

    今天介绍一个叫 xlpython 的库,通过它我们可以用 Python 来开发 Excel 的宏脚本,真正实现在 Excel 中调用 Python. 基本环境 操作系统:Windows 10 x64 ...

  9. python与excel的应用-Python 3 读取和存储Excel数据(应用到接口测试)

    1.利用cmd命令安装第三方库 openpyxl 同时支持读写操作,支持的Excel是以.xlsx结尾的文件. 命令: pip install openpyxl [命令:pip install req ...

  10. vba和python哪个好学-Python或将取代VBA,成为Excel官方脚本语言???

    原标题:Python或将取代VBA,成为Excel官方脚本语言??? 微软正考虑添加 Python 为官方的 Excel 脚本语言‍ 据外媒报道,微软正考虑添加 Python 为官方的一种 Excel ...

最新文章

  1. 鸟哥的Linux私房菜基础学习篇(第二版)第十二章课后习题与答案
  2. JSONP原理以及安全问题
  3. 关于 命令行参数 main(int argc,char** argv)
  4. 腾讯位置服务:有何优势?如何使用平台创建应用和服务调用的 Key?
  5. 想要写出好味道的代码,你需要养成这些好习惯!
  6. tp auth 转载保存
  7. 《强化学习》中的第13章:策略梯度方法
  8. 汉化:Blocs for Mac(可视化网页设计工具)4.5.0
  9. tif怎么转化为jpg_tif怎么批量转换成jpg
  10. ps无法打开计算机缺失文件,ps打开出现dll文件丢失怎么解决
  11. 平行四边形不等式优化详解
  12. Arcgis 地理坐标系转投影坐标系(WGS84转CGCS2000)
  13. 在excel中使用offset和match函数进行二维表对二维表的匹配
  14. “人生搜索引擎” # Rewind
  15. python QRcode
  16. 如何用canvas实现五子棋
  17. 淘宝代购系统|代购网站建设|代购系统开发代码对接教程
  18. 无法确认设备和计算机之间的连接打印机,我无法从计算机上通过USB 进行打印...
  19. 为什么说我学计算机是误入歧途,致贪玩的初中生:为什么别人在学习,而你却要玩,你要赶紧警醒!...
  20. django admin 验证码点击刷新

热门文章

  1. Python 设计模式之建造者模式 Builder Pattern
  2. ZooKeeper系列(3):znode说明和znode状态
  3. 关于 数据库 my_slq的 安装及其卸载
  4. 项目笔记:分层模型建立
  5. 一幅图看懂prototype与[[Prototype]]
  6. text-overflow:ellipsis的巧妙运用
  7. HDU3591找零,背包
  8. 蓝桥杯:十六进制转八进制
  9. 项目调研的误区和关键点
  10. AT SELECTION-SCREEN