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 相关文章推荐
linux系统使用python监测网络接口获取网络的输入输出
Jan 15 Python
python实现判断一个字符串是否是合法IP地址的示例
Jun 04 Python
python验证码识别教程之利用滴水算法分割图片
Jun 05 Python
Python面向对象类的继承实例详解
Jun 27 Python
python 实现批量xls文件转csv文件的方法
Oct 23 Python
Python判断telnet通不通的实例
Jan 26 Python
python实现可逆简单的加密算法
Mar 22 Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 Python
Python turtle库绘制菱形的3种方式小结
Nov 23 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
Jul 20 Python
Python绘制分类图的方法
Apr 20 Python
Python中time与datetime模块使用方法详解
Mar 31 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
合作指挥官:孟斯克
2020/03/16 星际争霸
php mssql 日期出现中文字符的解决方法
2009/03/10 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
Javascript 表单之间的数据传递代码
2008/12/04 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
React组件中的this的具体使用
2018/02/28 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
详解Python编程中基本的数学计算使用
2016/02/04 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
本科生个人求职自荐信
2013/09/26 职场文书
家长评语和期望
2014/02/10 职场文书
团支书竞选演讲稿
2014/04/28 职场文书
小学语文教研活动总结
2014/07/01 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
Python的这些库,你知道多少?
2021/06/09 Python
Java字符串逆序方法详情
2022/03/21 Java/Android