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的常见命令注入威胁
Feb 18 Python
Python os模块介绍
Nov 30 Python
Python脚本实现代码行数统计代码分享
Mar 10 Python
Python实现栈的方法
May 26 Python
python处理xml文件的方法小结
May 02 Python
Python迭代器和生成器定义与用法示例
Feb 10 Python
python实现事件驱动
Nov 21 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
Jun 21 Python
python命令行参数用法实例分析
Jun 25 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
Feb 27 Python
Pycharm安装python库的方法
Nov 24 Python
正确的理解和使用Django信号(Signals)
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
FCKeditor添加自定义按钮
2008/03/27 PHP
用来解析.htgroup文件的PHP类
2012/09/05 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
经验几则 推荐
2006/09/05 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
JS变量及其作用域
2017/03/29 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
微信小程序多列表渲染数据开关互不影响的实现
2020/06/05 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
python中使用enumerate函数遍历元素实例
2014/06/16 Python
Python闭包实现计数器的方法
2015/05/05 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
基于python实现计算两组数据P值
2020/07/10 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
幼儿园园长自我鉴定
2013/10/22 职场文书
揠苗助长教学反思
2014/02/04 职场文书
中学生英语演讲稿
2014/04/26 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
法人授权委托书样本
2014/09/19 职场文书
社区敬老月活动总结
2015/05/07 职场文书
2016年元旦致辞
2015/08/01 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python