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之正规地说一句话
Sep 28 Python
Python Web框架Flask中使用七牛云存储实例
Feb 08 Python
用C++封装MySQL的API的教程
May 06 Python
玩转python selenium鼠标键盘操作(ActionChains)
Apr 12 Python
python导出hive数据表的schema实例代码
Jan 22 Python
python 定时修改数据库的示例代码
Apr 08 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
Python3实现的简单验证码识别功能示例
May 02 Python
python word转pdf代码实例
Aug 16 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
Mar 24 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
Apr 14 Python
Python 多线程处理任务实例
Nov 07 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 Socket 编程
2010/04/09 PHP
解析ajax事件的调用顺序
2013/06/17 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
PHP实现下载断点续传的方法
2014/11/12 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
JavaScript实现快速排序(自已编写)
2012/12/19 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
MUI  Scroll插件的使用详解
2017/04/13 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
vue 地区选择器v-distpicker的常用功能
2019/07/23 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
python实现斐波那契数列的方法示例
2017/01/12 Python
python实现下载整个ftp目录的方法
2017/01/17 Python
django 创建过滤器的实例详解
2017/08/14 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
在tensorflow中设置保存checkpoint的最大数量实例
2020/01/21 Python
canvas实现俄罗斯方块的方法示例
2018/12/13 HTML / CSS
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
建筑公司员工自我鉴定
2014/04/08 职场文书
乡镇平安建设汇报材料
2014/08/25 职场文书
2014年妇女工作总结
2014/12/06 职场文书
颐和园英文导游词
2015/01/30 职场文书
小学生学习保证书
2015/02/26 职场文书
教师理论学习心得体会
2016/01/21 职场文书
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL