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 相关文章推荐
python3.3使用tkinter开发猜数字游戏示例
Mar 14 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
python if not in 多条件判断代码
Sep 21 Python
python自动发邮件库yagmail的示例代码
Feb 23 Python
python对视频画框标记后保存的方法
Dec 07 Python
python调用webservice接口的实现
Jul 12 Python
使用 Django Highcharts 实现数据可视化过程解析
Jul 31 Python
Numpy之reshape()使用详解
Dec 26 Python
Windows下实现将Pascal VOC转化为TFRecords
Feb 17 Python
在 Python 中使用 7zip 备份文件的操作
Dec 11 Python
Python基础学习之奇异的GUI对话框
May 27 Python
python批量创建变量并赋值操作
Jun 03 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
简单采集了yahoo的一些数据
2007/02/14 PHP
Discuz!X中SESSION机制实例详解
2015/09/23 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
json简单介绍
2008/06/10 Javascript
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
讲解vue-router之什么是动态路由
2018/05/28 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
Python实现建立SSH连接的方法
2015/06/03 Python
详解python发送各类邮件的主要方法
2016/12/22 Python
Python编程修改MP3文件名称的方法
2017/04/19 Python
Python输入二维数组方法
2018/04/13 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
python列表返回重复数据的下标
2020/02/10 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
武汉英思工程科技有限公司–ORACLE面试测试题目
2012/04/30 面试题
追悼会主持词
2014/03/20 职场文书
安全生产责任书范本
2014/04/15 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
旅行社计调工作总结
2015/08/12 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis