python高手之路python处理excel文件(方法汇总)


Posted in Python onJanuary 07, 2016

用python来自动生成excel数据文件。python处理excel文件主要是第三方模块库xlrd、xlwt、xluntils和pyExcelerator,除此之外,python处理excel还可以用win32com和openpyxl模块。

方法一:

小罗问我怎么从excel中读取数据,然后我百了一番,做下记录

excel数据图(小罗说数据要给客户保密,我随手写了几行数据):

python高手之路python处理excel文件(方法汇总)

python读取excel文件代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 读取excel数据
# 小罗的需求,取第二行以下的数据,然后取每行前13列的数据
import xlrd
data = xlrd.open_workbook('test.xls') # 打开xls文件
table = data.sheets()[0] # 打开第一张表
nrows = table.nrows # 获取表的行数
for i in range(nrows): # 循环逐行打印
if i == 0: # 跳过第一行
continue
print table.row_values(i)[:13] # 取前十三列

excel的写操作等后面用到的时候在做记录

方法二:

使用xlrd读取文件,使用xlwt生成Excel文件(可以控制Excel中单元格的格式)。但是用xlrd读取excel是不能对其进行操作的;而xlwt生成excel文件是不能在已有的excel文件基础上进行修改的,如需要修改文件就要使用xluntils模块。pyExcelerator模块与xlwt类似,也可以用来生成excel文件。

1. [代码]test_xlrd.py

#coding=utf-8
#######################################################
#filename:test_xlrd.py
#author:defias
#date:xxxx-xx-xx
#function:读excel文件中的数据
#######################################################
import xlrd
#打开一个workbook
workbook = xlrd.open_workbook('E:\\Code\\Python\\testdata.xls')
#抓取所有sheet页的名称
worksheets = workbook.sheet_names()
print('worksheets is %s' %worksheets)
#定位到sheet1
worksheet1 = workbook.sheet_by_name(u'Sheet1')
"""
#通过索引顺序获取
worksheet1 = workbook.sheets()[0]
#或
worksheet1 = workbook.sheet_by_index(0)
"""
"""
#遍历所有sheet对象
for worksheet_name in worksheets:
worksheet = workbook.sheet_by_name(worksheet_name)
"""
#遍历sheet1中所有行row
num_rows = worksheet1.nrows
for curr_row in range(num_rows):
row = worksheet1.row_values(curr_row)
print('row%s is %s' %(curr_row,row))
#遍历sheet1中所有列col
num_cols = worksheet1.ncols
for curr_col in range(num_cols):
col = worksheet1.col_values(curr_col)
print('col%s is %s' %(curr_col,col))
#遍历sheet1中所有单元格cell
for rown in range(num_rows):
for coln in range(num_cols):
cell = worksheet1.cell_value(rown,coln)
print cell
"""
#其他写法:
cell = worksheet1.cell(rown,coln).value
print cell
#或
cell = worksheet1.row(rown)[coln].value
print cell
#或
cell = worksheet1.col(coln)[rown].value
print cell
#获取单元格中值的类型,类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
cell_type = worksheet1.cell_type(rown,coln)
print cell_type
"""

2. [代码]test_xlwt.py

#coding=utf-8
#######################################################
#filename:test_xlwt.py
#author:defias
#date:xxxx-xx-xx
#function:新建excel文件并写入数据
#######################################################
import xlwt
#创建workbook和sheet对象
workbook = xlwt.Workbook() #注意Workbook的开头W要大写
sheet1 = workbook.add_sheet('sheet1',cell_overwrite_ok=True)
sheet2 = workbook.add_sheet('sheet2',cell_overwrite_ok=True)
#向sheet页中写入数据
sheet1.write(0,0,'this should overwrite1')
sheet1.write(0,1,'aaaaaaaaaaaa')
sheet2.write(0,0,'this should overwrite2')
sheet2.write(1,2,'bbbbbbbbbbbbb')
"""
#-----------使用样式-----------------------------------
#初始化样式
style = xlwt.XFStyle() 
#为样式创建字体
font = xlwt.Font()
font.name = 'Times New Roman'
font.bold = True
#设置样式的字体
style.font = font
#使用样式
sheet.write(0,1,'some bold Times text',style)
"""
#保存该excel文件,有同名文件时直接覆盖
workbook.save('E:\\Code\\Python\\test2.xls')
print '创建excel文件完成!'

3. [代码]test_xlutils.py

#coding=utf-8
#######################################################
#filename:test_xlutils.py
#author:defias
#date:xxxx-xx-xx
#function:向excel文件中写入数据
#######################################################
import xlrd
import xlutils.copy
#打开一个workbook
rb = xlrd.open_workbook('E:\\Code\\Python\\test1.xls') 
wb = xlutils.copy.copy(rb)
#获取sheet对象,通过sheet_by_index()获取的sheet对象没有write()方法
ws = wb.get_sheet(0)
#写入数据
ws.write(1, 1, 'changed!')
#添加sheet页
wb.add_sheet('sheetnnn2',cell_overwrite_ok=True)
#利用保存时同名覆盖达到修改excel文件的目的,注意未被修改的内容保持不变
wb.save('E:\\Code\\Python\\test1.xls')

4. [代码]test_pyExcelerator_read.py

#coding=utf-8
#######################################################
#filename:test_pyExcelerator_read.py
#author:defias
#date:xxxx-xx-xx
#function:读excel文件中的数据
#######################################################
import pyExcelerator
#parse_xls返回一个列表,每项都是一个sheet页的数据。
#每项是一个二元组(表名,单元格数据)。其中单元格数据为一个字典,键值就是单元格的索引(i,j)。如果某个单元格无数据,那么就不存在这个值
sheets = pyExcelerator.parse_xls('E:\\Code\\Python\\testdata.xls')
print sheets

5. [代码]test_pyExcelerator.py

#coding=utf-8
#######################################################
#filename:test_pyExcelerator.py
#author:defias
#date:xxxx-xx-xx
#function:新建excel文件并写入数据
#######################################################
import pyExcelerator
#创建workbook和sheet对象
wb = pyExcelerator.Workbook()
ws = wb.add_sheet(u'第一页')
#设置样式
myfont = pyExcelerator.Font()
myfont.name = u'Times New Roman'
myfont.bold = True
mystyle = pyExcelerator.XFStyle()
mystyle.font = myfont
#写入数据,使用样式
ws.write(0,0,u'ni hao 帕索!',mystyle)
#保存该excel文件,有同名文件时直接覆盖
wb.save('E:\\Code\\Python\\mini.xls')
print '创建excel文件完成!'
Python 相关文章推荐
python正则表达式re模块详解
Jun 25 Python
python中xrange用法分析
Apr 15 Python
Python中函数的参数定义和可变参数用法实例分析
Jun 04 Python
Python多进程机制实例详解
Jul 02 Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
Apr 04 Python
详解Python可视化神器Yellowbrick使用
Nov 11 Python
tornado+celery的简单使用详解
Dec 21 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
Feb 06 Python
pyinstaller打包找不到文件的问题解决
Apr 15 Python
Python操作Elasticsearch处理timeout超时
Jul 17 Python
python中实现词云图的示例
Dec 19 Python
Python解析最简单的验证码
Jan 07 #Python
Python中http请求方法库汇总
Jan 06 #Python
python访问mysql数据库的实现方法(2则示例)
Jan 06 #Python
分享Python文本生成二维码实例
Jan 06 #Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 #Python
使用Python神器对付12306变态验证码
Jan 05 #Python
Python聊天室实例程序分享
Jan 05 #Python
You might like
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
jquery实现动态添加附件功能
2018/10/23 jQuery
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
微信小程序登录时如何获取input框中的内容
2019/12/04 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
python 爬取微信文章
2016/01/30 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
Python中的pack和unpack的使用
2018/03/12 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
python中的decimal类型转换实例详解
2019/06/26 Python
解决django接口无法通过ip进行访问的问题
2020/03/27 Python
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
大学生军训自我鉴定
2014/02/12 职场文书
《故乡》教学反思
2014/04/10 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
小马王观后感
2015/06/11 职场文书
职场中的你,辞职信写对了吗?
2019/06/26 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
Go语言应该什么情况使用指针
2021/07/25 Golang