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实现的监测服务器硬盘使用率脚本分享
Nov 07 Python
Python3实现并发检验代理池地址的方法
Sep 18 Python
Python基于分水岭算法解决走迷宫游戏示例
Sep 26 Python
详解Python的数据库操作(pymysql)
Apr 04 Python
对python中url参数编码与解码的实例详解
Jul 25 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
Python队列、进程间通信、线程案例
Oct 25 Python
python 解决cv2绘制中文乱码问题
Dec 23 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
详解Python模块化编程与装饰器
Jan 16 Python
Python各协议下socket黏包问题原理
Apr 12 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 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
ThinkPHP中实例Model方法的区别说明
2010/08/21 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
微信小程序版翻牌小游戏
2018/01/26 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
Python对象属性自动更新操作示例
2018/06/15 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
如何使用python实现模拟鼠标点击
2020/01/06 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
thinkphp5 路由分发原理
2021/03/18 PHP
css3 矩阵的使用详解
2018/03/20 HTML / CSS
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
html5自定义video标签的海报与播放按钮功能
2019/12/04 HTML / CSS
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
MAC彩妆英国官网:M·A·C UK
2018/05/30 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
园艺师求职信
2014/03/10 职场文书
土地转让协议书
2014/09/27 职场文书
求职自我评价参考范文
2019/05/16 职场文书
Python源码解析之List
2021/05/21 Python
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle