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使用PyGame绘制图像并保存为图片文件的方法
Apr 24 Python
简单谈谈python中的多进程
Nov 06 Python
python多进程提取处理大量文本的关键词方法
Jun 05 Python
tensorflow更改变量的值实例
Jul 30 Python
Python pymongo模块常用操作分析
Sep 01 Python
对Python 内建函数和保留字详解
Oct 15 Python
pandas数据集的端到端处理
Feb 18 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
Python调用shell cmd方法代码示例解析
Jun 18 Python
理解深度学习之深度学习简介
Apr 14 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
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
PHP获取二维数组中某一列的值集合
2015/12/25 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
js中关于String对象的replace使用详解
2011/05/24 Javascript
你必须知道的Javascript知识点之"深入理解作用域链"的介绍
2013/04/23 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
JS+CSS实现六级网站导航主菜单效果
2015/09/28 Javascript
详解JavaScript中的Unescape()和String() 函数
2015/11/09 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
2015/12/02 Javascript
javascript HTML5 canvas实现打砖块游戏
2020/06/18 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
Node.js 实现简单小说爬虫实例
2016/11/18 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
详解vue 命名视图
2019/08/14 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
python实现简单淘宝秒杀功能
2018/05/03 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
python中删除某个元素的方法解析
2019/11/05 Python
Python hmac模块使用实例解析
2019/12/24 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
经济实惠的名牌太阳镜和眼镜:Privé Revaux
2021/02/07 全球购物
动物科学专业毕业生的自我评价
2013/11/29 职场文书
幼儿园保教管理制度
2014/02/03 职场文书
个人工作总结范文2014
2014/11/07 职场文书
优秀大学生自荐信
2015/03/26 职场文书
2015年共青团工作总结
2015/05/15 职场文书
从事会计工作年限证明
2015/06/23 职场文书