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中xrange用法分析
Apr 15 Python
Python中将字典转换为列表的方法
Sep 21 Python
Python的地形三维可视化Matplotlib和gdal使用实例
Dec 09 Python
快速查询Python文档方法分享
Dec 27 Python
numpy.transpose对三维数组的转置方法
Apr 17 Python
python 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
Django框架之登录后自定义跳转页面的实现方法
Jul 18 Python
python爬虫 Pyppeteer使用方法解析
Sep 28 Python
python如何通过闭包实现计算器的功能
Feb 22 Python
Python实现迪杰斯特拉算法过程解析
Sep 18 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下MYSQL limit的优化
2008/01/10 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
Javascript面向对象编程
2012/03/18 Javascript
jquery简单实现鼠标经过导航条改变背景图
2013/12/17 Javascript
JS+CSS实现可拖动的弹出提示框
2015/02/16 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
js操作浏览器的参数方法
2017/01/21 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
[01:14]TI珍贵瞬间系列(六):冠军
2020/08/30 DOTA
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
Python实现简单字典树的方法
2016/04/29 Python
python中urlparse模块介绍与使用示例
2017/11/19 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
Django的models模型的具体使用
2019/07/15 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
Pytorch中的自动求梯度机制和Variable类实例
2020/02/29 Python
django使用JWT保存用户登录信息
2020/04/22 Python
软件测试英文面试题
2012/10/14 面试题
计算机专业应届毕业生自荐信
2013/09/26 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
优秀干部获奖感言
2014/01/31 职场文书
党支部公开承诺践诺书
2014/03/28 职场文书
女生抽烟检讨书
2014/10/05 职场文书
工作年限证明模板
2015/06/15 职场文书
关于践行三严三实的心得体会
2016/01/05 职场文书