python处理excel入门教程(Python使用xlrd和xlwt读写Excel的简单用法)

python处理excel入门教程(Python使用xlrd和xlwt读写Excel的简单用法)(1)

前言

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

标准的 Excel 文件(xls/xlsx)具有较复杂的格式,并不方便像普通文本文件一样直接进行读写,需要借助第三方库来实现。

常用的库是 python-excel 系列:

xlrd、xlwt、xlutils

  • xlrd - 读取 Excel 文件
  • xlwt - 写入 Excel 文件
  • xlutils - 操作 Excel 文件的实用工具,如复制、分割、筛选等

库的安装

它们有个缺陷,就是只能处理 xls 文件。如果你想用新版本的 xlsx,可以考虑 openpyxl 和 xlsxwriter。

如果你只是装了Python的话,你需要分别安装xlrd、xlwt、xlutils,安装方式看个人情况,为了方便,建议安装pip包,这样安装很简单,直接pip install 包名。如果你安装了集成环境,比如anaconda,我已安装,已经有了 xlrd 和 xlwt,所以我只需要再安装xlutils即可。

python处理excel入门教程(Python使用xlrd和xlwt读写Excel的简单用法)(2)

分析Excel文件的层级对象

要读取excel的数据,就要了解excel的结构,根据excel的结构一层一层的去读取数据。

excel有三层级对象,workbook,sheet,和cell。一个excel文件就是一个workbook,所以在最初我们必须要打开这个excel文件,也就是workbook。sheet我们都很熟悉,就是表,我们都知道一个excel文件有时候会有很多的表,所以我们必须要选择是读取哪个表的数据,最后才是cell,cell其实就是格子,excel的表格就是一个二维数组,cell就是这个表格中的最小单元,也就是我们读取数据存储的地方。

xlrd库的使用

更多内容,参考链接:

http://xlrd.readthedocs.io/en/latest/

http://xlrd.readthedocs.io/en/latest/api.html

python处理excel入门教程(Python使用xlrd和xlwt读写Excel的简单用法)(3)

首先读取ad.xlsx表中的数据。先看一下代码:

#-*- coding:utf-8 -*-import xlrd #打开xlsx文件ad_wb = xlrd.open_workbook("ad.xlsx")#获取第一张表的名称row_data = ad_wb.sheets()[0]print ("表单数量:", ad_wb.nsheets)print ("表单名称:", ad_wb.sheet_names()) #获取第一个目标表单sheet_0 = ad_wb.sheet_by_index(0)print (u"表单 %s 共 %d 行 %d 列" % (sheet_0.name, sheet_0.nrows, sheet_0.ncols))print ("第三行第三列:", sheet_0.cell_value(2, 2)) #直接输出日期date_value = xlrd.xldate_as_tuple(sheet_0.cell_value(2,2),ad_wb.datemode)date1 = xlrd.xldate.xldate_as_datetime(sheet_0.cell_value(2, 2), ad_wb.datemode)print (date_value)#元组print (date1)#日期 # 遍历所有表单,由于数据量大 ,这里只取前10条for s in ad_wb.sheets(): for r in range(0, 10): # 输出指定行 print (s.row(r))

python处理excel入门教程(Python使用xlrd和xlwt读写Excel的简单用法)(4)

可以看到,上面的日期,已经被转换成了Excel的日期,这里是以数字类型展示的。

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

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

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

可以看到我重新输出了日期结果(具体见代码)。

python处理excel入门教程(Python使用xlrd和xlwt读写Excel的简单用法)(5)

另外,在打开文件时,加上参数 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)

xlrd常用的方法:

· open_workbook 打开文件

· sheet_by_index 获取某一个表单

· sheets 获取所有表单

· cell_value 获取指定单元格的数据

xlwt库的使用

先看一个示例代码:

#-*-coding:utf-8 -*-import xlwt #创建xls文件对象wb = xlwt.Workbook()#新建表单sh = wb.add_sheet('A new sheet')#按位置添加数据,前面两个参数是位置,后面一个是单元格内容sh.write(0, 0, 'hello')sh.write(1, 0, 'world')sh.write(2, 0, 1234567)sh.write(2, 1, '2017-04-10')#保存文件wb.save('xlwt_test.xls')

生成的文件如下所示:

python处理excel入门教程(Python使用xlrd和xlwt读写Excel的简单用法)(6)

xlwt常用的方法:

· Workbook 创建文件对象

· add_sheet 新增一个表单

· write 在指定单元格写入数据

小结

上面就是今天的主题内容了,今天分享下如何使用Python操作Excel进行读写文件,这对于经常处理相同格式的表格有很大帮助。

欢迎关注公众号,访问更多精彩:数据之魅

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页