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实现list反转实例汇总
Nov 11 Python
Python里disconnect UDP套接字的方法
Apr 23 Python
python安装与使用redis的方法
Apr 19 Python
python去掉行尾的换行符方法
Jan 04 Python
Python使用smtp和pop简单收发邮件完整实例
Jan 09 Python
详解python和matlab的优势与区别
Jun 28 Python
python实现异常信息堆栈输出到日志文件
Dec 26 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
Python tkinter布局与按钮间距设置方式
Mar 04 Python
Python 炫技操作之合并字典的七种方法
Apr 10 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
Jul 09 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 10 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
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
PHP加密解密函数详解
2015/10/28 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
防止页面被iframe(兼容IE,Firefox火狐)
2010/07/04 Javascript
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
jQuery动态设置form表单的enctype值(实现代码)
2013/07/04 Javascript
js判断undefined类型示例代码
2014/02/10 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
[04:42]2015国际邀请赛CDEC战队晋级之路
2015/08/13 DOTA
python使用MySQLdb访问mysql数据库的方法
2015/08/03 Python
python xlwt如何设置单元格的自定义背景颜色
2019/09/03 Python
Python的条件锁与事件共享详解
2019/09/12 Python
python with语句的原理与用法详解
2020/03/30 Python
python switch 实现多分支选择功能
2020/12/21 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
建筑安全生产目标责任书
2014/07/23 职场文书
商场消防安全责任书
2014/07/29 职场文书
迎七一演讲稿
2014/09/12 职场文书
办理房产过户的委托书
2014/09/14 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
爱国影片观后感
2015/06/18 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python