数据处理是 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 等。

如果安装过之前推荐的 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)

# 遍历所有表单

forsinbook.sheets():

forrinrange(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 中的方法。

fromxlrd import open_workbook

fromxlutils.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 文件的一些基本方法。实际使用过程中遇到问题或者需要了解更多功能,永远记住两个词:

RTFM、STFW

:)

【编辑推荐】

【责任编辑:未丽燕 TEL:(010)68476606】

点赞 0

python与excel-Python与Excel 不得不说的事情相关推荐

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

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

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

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

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

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

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

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

  5. python导入excel文件-python使用xlrd模块读写Excel文件的方法

    本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...

  6. python导入excel数据-Python数据处理之导入导出excel数据

    欢迎点击上方"AntDream"关注我 .Python的一大应用就是数据分析了,而数据分析中,经常碰到需要处理Excel数据的情况.这里做一个Python处理Excel数据的总结, ...

  7. Python 技术篇 - 用xlrd库和xlwt库操作excel,对excel进行读取和写入实例演示

    首先你需要安装 xlrd 和 xlwt 这两个库,一个是读库,一个是写库. 先来说一下这两个库的局限性: 局限性一: 不能用于 xlsx 文件 局限性二: 写的时候不能写入已有的文件,只能重新建 解决 ...

  8. python如何修改excel数据库_python学习笔记-day7-2-【python从mysql数据库导数据到excel,读excel,修改excel】...

    这节说下如何用python把数据库里的数据导出到excel里,并如何读取excel, 修必excel等操作. 一.用python把数据库里的数据导出到excel里 1.导入如下的模块,没有的话需要安装 ...

  9. 【Python基础】python使用openpyxl操作excel

    1.openpyxl库介绍 openpyxl最好用的python操作excel表格库,不接受反驳: openpyxl官网链接:openpyxl官网 openpyxl只支持[.xlsx / .xlsm ...

  10. python处理excel代码_Python实现读写Excel和修改Excel的代码

    本篇文章给大家带来的内容是关于Python实现读写Excel和修改Excel的代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 读Excel#打开Excek,xlsfile为Exc ...

最新文章

  1. 自动机器学习(AutoML)
  2. SQLServer On Linux Package List on CentOS
  3. USACO Section 1.5 Checker Challenge
  4. TransDecoder
  5. python多项分时求和_python实现连续变量最优分箱详解--CART算法
  6. OTA和Recovery系统升级流程介绍
  7. GPU编程与CG语言之阳春白雪下里巴人 读书笔记
  8. 一道百度前端线上笔试题
  9. AOP框架Dora.Interception 3.0 [1]: 编程体验
  10. 模拟电子技术不挂科学习笔记2(三极管、场效应管)
  11. 删除指定天数文件,再删除所有的空目录批处理文件
  12. Java 会被新兴语言取代吗?
  13. ScreenToClient And ClientToScreen
  14. 在linux目录中设置权限设置,linux下为目录和文件设置权限(示例代码)
  15. 电脑无故重启很卡(深度相机也用不了)
  16. 提取小米手机系统完整包BOOT,及ROOT!
  17. 气象接口返回图标_国家气象局提供的天气预报接口及使用说明
  18. 【春晚歌星】著名歌唱家拉齐献声人气民族好歌
  19. pve万兆网卡驱动_PVE+lede+DSM网卡硬盘直通+win10
  20. FPGA Implementation of BPSK Modulator and Demodulator

热门文章

  1. windows平台搭建opencv_python
  2. 雨敲窗python_今夜,有雨敲窗(太美了)
  3. 如何降低死循环的 CPU 占用
  4. Java 疑问自问自答
  5. IO流(八)之InputStreamReader类与OutputStreamWriter类
  6. 分享12款 JavaScript 表格控件(DataGrid)
  7. Python学习之路3 - 字符串操作字典
  8. laraverl笔记
  9. Linux中last的用法及参数,查看登陆系统用户的信息
  10. 第45届国际大学生程序设计竞赛(ICPC)沈阳站太原理工大学收获1枚铜牌