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 相关文章推荐
使用C语言扩展Python程序的简单入门指引
Apr 14 Python
一个基于flask的web应用诞生(1)
Apr 11 Python
python调用Matplotlib绘制分布点并且添加标签
May 31 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
Nov 23 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
python 模拟贷款卡号生成规则过程解析
Aug 30 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
Python @property及getter setter原理详解
Mar 31 Python
Python如何批量获取文件夹的大小并保存
Mar 31 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
python使用bs4爬取boss直聘静态页面
Oct 10 Python
Pytest中conftest.py的用法
Jun 27 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
做一个有下拉功能的留言版
2006/10/09 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
PDO::commit讲解
2019/01/27 PHP
JavaScript方法和技巧大全
2006/12/27 Javascript
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
详解nuxt sass全局变量(公共scss解决方案)
2018/06/27 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
vue实现微信分享链接添加动态参数的方法
2019/04/29 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
vue.js刷新当前页面的实例讲解
2020/12/29 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
SQL面试题
2013/12/09 面试题
应届实习生的自我评价范文
2014/01/05 职场文书
总结表彰大会主持词
2014/03/26 职场文书
高校群众路线教育实践活动剖析材料
2014/10/10 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript