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网络编程学习笔记(10):webpy框架
Jun 09 Python
使用 Python 实现简单的 switch/case 语句的方法
Sep 17 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
简单了解python元组tuple相关原理
Dec 02 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
python实现串口通信的示例代码
Feb 10 Python
python中安装django模块的方法
Mar 12 Python
Python参数传递对象的引用原理解析
May 22 Python
python datetime时间格式的相互转换问题
Jun 11 Python
python3.x中安装web.py步骤方法
Jun 23 Python
利用Python过滤相似文本的简单方法示例
Feb 03 Python
撤回我也能看到!教你用Python制作微信防撤回脚本
Jun 11 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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
2006/10/09 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
推荐十款免费 WordPress 插件
2015/03/24 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
根据经纬度计算地球上两点之间的距离js实现代码
2013/03/05 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
React手稿之 React-Saga的详解
2018/11/12 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
2019/05/13 Javascript
聊聊Vue 中 title 的动态修改问题
2019/06/11 Javascript
Python使用自带的ConfigParser模块读写ini配置文件
2016/06/26 Python
使用Python对Access读写操作
2017/03/30 Python
python构建深度神经网络(DNN)
2018/03/10 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
Django CSRF跨站请求伪造防护过程解析
2019/07/31 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
Fanatics英国官网:美国体育电商
2018/11/06 全球购物
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
中专生学习生活的自我评价分享
2013/10/27 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
运动会广播稿20字
2014/02/18 职场文书
安全保证书格式
2015/02/28 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
PHP遍历数组的6种方式总结
2021/11/17 PHP
详解CSS中postion和opacity及cursor的特性
2022/08/14 HTML / CSS