Python读写Excel文件的实例


Posted in Python onNovember 01, 2013

最近由于经常要用到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("Sheet1")
except:
 print "no sheet in %s named Sheet1" % fname
#获取行数
nrows = sh.nrows
#获取列数
ncols = sh.ncols
print "nrows %d, ncols %d" % (nrows,ncols)
#获取第一行第一列数据 
cell_value = sh.cell_value(1,1)
#print cell_value
 
row_list = []
#获取各行数据
for i in range(1,nrows):
 row_data = sh.row_values(i)
 row_list.append(row_data)

2.写入Excel(需安装pyExcelerator)

from pyExcelerator import *

w = Workbook()  #创建一个工作簿
ws = w.add_sheet('Hey, Hades')  #创建一个工作表
ws.write(0,0,'bit') #在1行1列写入bit
ws.write(0,1,'huang') #在1行2列写入huang
ws.write(1,0,'xuan') #在2行1列写入xuan
w.save('mini.xls')  #保存

3.再举个自己写的读写Excel的例子
读取reflect.xls中的某些信息进行处理后写入mini.xls文件中。 

#-*- coding: utf8 -*-
import xlrd
from pyExcelerator import * 
 
w = Workbook() 
ws = w.add_sheet('Sheet1') 

fname = "reflect.xls"
bk = xlrd.open_workbook(fname)
shxrange = range(bk.nsheets)
try:
 sh = bk.sheet_by_name("Sheet1")
except:
 print "no sheet in %s named Sheet1" % fname

nrows = sh.nrows
ncols = sh.ncols
print "nrows %d, ncols %d" % (nrows,ncols)
 
cell_value = sh.cell_value(1,1)
#print cell_value
 
row_list = []
mydata = []
for i in range(1,nrows):
 row_data = sh.row_values(i)
 pkgdatas = row_data[3].split(',')
 #pkgdatas.split(',')
 #获取每个包的前两个字段
 for pkgdata in pkgdatas:
  pkgdata = '.'.join((pkgdata.split('.'))[:2])
  mydata.append(pkgdata)
 #将列表排序
 mydata = list(set(mydata))
 print mydata
 #将列表转化为字符串
 mydata = ','.join(mydata)
 #写入数据到每行的第一列
 ws.write(i,0,mydata)
 mydata = []
 row_list.append(row_data[3])
#print row_list

w.save('mini.xls')

4.现在我需要根据Excel文件中满足特定要求的apk的md5值来从服务器获取相应的apk样本,就需要这样做: 

#-*-coding:utf8-*-
import xlrd
import os
import shutil
 
fname = "./excelname.xls"
bk = xlrd.open_workbook(fname)
shxrange = range(bk.nsheets)
try:
 #打开Sheet1工作表
 sh = bk.sheet_by_name("Sheet1")
except:
 print "no sheet in %s named Sheet1" % fname
#获取行数
nrows = sh.nrows
#获取列数
ncols = sh.ncols
#print "nrows %d, ncols %d" % (nrows,ncols)
#获取第一行第一列数据
cell_value = sh.cell_value(1,1)
#print cell_value
 
row_list = []
#range(起始行,结束行)
for i in range(1,nrows):
 row_data = sh.row_values(i)
 if row_data[6] == "HXB":
  filename = row_data[3]+".apk"
  #print "%s %s %s" %(i,row_data[3],filename)
  filepath = r"./1/"+filename
  print "%s %s %s" %(i,row_data[3],filepath)
  if os.path.exists(filepath):
   shutil.copy(filepath, r"./myapk/")

补充一个使用xlwt3进行Excel文件的写操作。

import xlwt3

if __name__ == '__main__':
	
	datas = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h']]#二维数组
	file_path = 'D:\\test.xlsx'
	
	wb = xlwt3.Workbook()
	sheet = wb.add_sheet('test')#sheet的名称为test
	
	#单元格的格式
	style = 'pattern: pattern solid, fore_colour yellow; '#背景颜色为黄色
	style += 'font: bold on; '#粗体字
	style += 'align: horz centre, vert center; '#居中
	header_style = xlwt3.easyxf(style)
	
	row_count = len(datas)
	col_count = len(datas[0])
	for row in range(0, row_count): 
		col_count = len(datas[row]) 
		for col in range(0, col_count):
			if row == 0:#设置表头单元格的格式
				sheet.write(row, col, datas[row][col], header_style)
			else:
				sheet.write(row, col, datas[row][col])
	wb.save(file_path)

输出的文件内容如下图:

Python读写Excel文件的实例

注:以上代码在Python 3.x版本测试通过。

好了,python操作Excel就这么!些了,简单吧

Python 相关文章推荐
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
Nov 05 Python
python生成器,可迭代对象,迭代器区别和联系
Feb 04 Python
用python处理MS Word的实例讲解
May 08 Python
Anaconda下配置python+opencv+contribx的实例讲解
Aug 06 Python
Django组件之cookie与session的使用方法
Jan 10 Python
Python面向对象之类的定义与继承用法示例
Jan 14 Python
Python实现K折交叉验证法的方法步骤
Jul 11 Python
python求平均数、方差、中位数的例子
Aug 22 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
Dec 19 Python
Python包,__init__.py功能与用法分析
Jan 07 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 Python
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
May 14 Python
Python修改Excel数据的实例代码
Nov 01 #Python
Python获取apk文件URL地址实例
Nov 01 #Python
Python urllib模块urlopen()与urlretrieve()详解
Nov 01 #Python
Python ZipFile模块详解
Nov 01 #Python
python标准日志模块logging的使用方法
Nov 01 #Python
python类定义的讲解
Nov 01 #Python
用实例说明python的*args和**kwargs用法
Nov 01 #Python
You might like
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
提高php编程效率技巧
2015/08/13 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
JavaScript基础语法让人疑惑的地方小结
2012/05/23 Javascript
angularjs基础教程
2014/12/25 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
jquery判断输入密码两次是否相等
2020/04/22 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
vue实现计算器功能
2020/02/22 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
详解Python中的Cookie模块使用
2015/07/06 Python
深入浅出学习python装饰器
2017/09/29 Python
使用pytorch完成kaggle猫狗图像识别方式
2020/01/10 Python
python扫描线填充算法详解
2020/02/19 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
python压包的概念及实例详解
2021/02/17 Python
iostream与iostream.h的区别
2015/01/16 面试题
人事主管的岗位职责
2013/11/16 职场文书
中专毕业生自荐信范文
2013/11/28 职场文书
公司周年庆典邀请函
2014/01/12 职场文书
庆元旦广播稿
2014/02/10 职场文书
大学生自我评价范文
2015/03/03 职场文书
副总经理岗位职责范本
2015/04/08 职场文书