Python使用xlrd和xlwt读写Excel的简单用法

前言
数据处理是 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即可。

分析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

基础数据如下所示:

首先读取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))
输出结果:

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

因为这里 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)
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进行读写文件,这对于经常处理相同格式的表格有很大帮助。希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。

时间: 2024-09-19 09:51:35

Python使用xlrd和xlwt读写Excel的简单用法的相关文章

python中使用xlrd、xlwt操作excel表格详解_python

最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究"(用此一词让我觉得颇有成就感)之后,基本解决了日常所需.主要记录使用过程的常见问题及解决. python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库.可从这里下载https://pypi.python.org/pypi.下面分别记录python

python使用xlrd模块读写Excel文件的方法

  这篇文章主要介绍了python使用xlrd模块读写Excel文件的方法,较为详细的分析了xlrd模块的安装.使用与操作Excel文件的相关技巧,需要的朋友可以参考下 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境. 二.使用介绍 1.导入模块 代码如下: import xlrd 2.打开Excel文件读取数据 代码如下: data = xlrd.open_workbook('excelF

xlwt-python中使用xlrd和xlrt对excel读写问题

问题描述 python中使用xlrd和xlrt对excel读写问题 目的:现已存在一个excel,想对该excel里面的数据进行添加或者修改. 查了下网上的资料,发现xlrd模块的table.put_cell(row, col, ctype, value, xf)具有简单"写"的功能,但是用这个函数写完之后,桌面上打开excel并没有真实修改.查了查xlrd模块也没有修改后保存函数.然后查了下xlwt模块,发现此模块只能新创建excel并对其修改,不能对已有的excel进行修改!!那位

用python读写excel的方法_python

本文实例讲述了用python读写excel的方法.分享给大家供大家参考.具体如下: 最近需要从多个excel表里面用各种方式整理一些数据,虽然说原来用过java做这类事情,但是由于最近在学python,所以当然就决定用python尝试一下了.发现python果然简洁很多.这里简单记录一下.(由于是用到什么学什么,所以不算太深入,高手勿喷,欢迎指导) 一.读excel表 读excel要用到xlrd模块,官网安装(http://pypi.python.org/pypi/xlrd).然后就可以跟着里面

Python读写Excel文件方法介绍_python

一.读取excel 这里介绍一个不错的包xlrs,可以工作在任何平台.这也就意味着你可以在Linux下读取Excel文件. 首先,打开workbook: 复制代码 代码如下: import xlrd wb = xlrd.open_workbook('myworkbook.xls') 检查表单名字: 复制代码 代码如下: wb.sheet_names() 得到第一张表单,两种方式:索引和名字    复制代码 代码如下: sh = wb.sheet_by_index(0) sh = wb.sheet

Python读写Excel文件的实例_python

最近由于经常要用到Excel,需要根据Excel表格中的内容对一些apk进行处理,手动处理很麻烦,于是决定写脚本来处理.首先贴出网上找来的读写Excel的脚本.1.读取Excel(需要安装xlrd): #-*- coding: utf8 -*- import xlrd fname = "reflect.xls" bk = xlrd.open_workbook(fname) shxrange = range(bk.nsheets) try: sh = bk.sheet_by_name(&

Python使用xlrd模块操作Excel数据导入的方法

  本文实例讲述了Python使用xlrd模块操作Excel数据导入的方法.分享给大家供大家参考.具体分析如下: xlrd是一个基于python的可以读取excel文件的产品.和pyExcelerator相比,xlrd的主要特点在于读的功能比较强大,提供了表单行数.列数.单元格数据类型等pyExcelrator无法提供的详细信息,使得开发人员无须了解表单的具体结构也能对表单中的数据进行正确的分析转换. 但是xlrd仅仅提供了读取excel文件的功能,不能像pyExcelrator那样生成exce

python使用xlrd实现检索excel中某列含有指定字符串记录的方法

  这篇文章主要介绍了python使用xlrd实现检索excel中某列含有指定字符串记录的方法,涉及Python使用xlrd模块检索Excel的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了python使用xlrd实现检索excel中某列含有指定字符串记录的方法.分享给大家供大家参考.具体分析如下: 这里利用xlrd,将excel中某列数据中,含有指定字符串的记录取出,并生成用这个字符串命名的txt文件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1

Python使用xlrd读取Excel格式文件的方法_python

本文实例讲述了Python使用xlrd读取Excel格式文件的方法.分享给大家供大家参考.具体如下: 使用xlrd能够很方便的读取excel文件内容,而且这是个跨平台的库,能够在windows,linux/unix,等平台上面使用,代码如下: import xlrd fname = "sample.xls" bk = xlrd.open_workbook(fname) shxrange = range(bk.nsheets) try: sh = bk.sheet_by_name(&qu