温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python操作Excel文件的方法有哪些

发布时间:2021-11-19 14:57:49 来源:亿速云 阅读:170 作者:iii 栏目:编程语言

本篇内容介绍了“Python操作Excel文件的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

数据处理是 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) # 遍历所有表单 for s in book.sheets():     for r in range(s.nrows):         # 输出指定行         print s.row(r)

测试文件:

Python操作Excel文件的方法有哪些

输出结果:

表单数量: 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')

生成文件:

Python操作Excel文件的方法有哪些

常用的方法:

  • 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')

修改后文件:

Python操作Excel文件的方法有哪些

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

时间转换

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

Python操作Excel文件的方法有哪些
Python操作Excel文件的方法有哪些

输出单元格内容:

[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文件的方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI