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 相关文章推荐
win10环境下python3.5安装步骤图文教程
Feb 03 Python
Python中文件I/O高效操作处理的技巧分享
Feb 04 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
Jun 11 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
python实现傅里叶级数展开的实现
Jul 21 Python
详解Django中CBV(Class Base Views)模型源码分析
Feb 25 Python
对pyqt5中QTabWidget的相关操作详解
Jun 21 Python
PyQt5响应回车事件的方法
Jun 25 Python
Python使用指定端口进行http请求的例子
Jul 25 Python
wxpython+pymysql实现用户登陆功能
Nov 19 Python
详解Python爬虫爬取博客园问题列表所有的问题
Jan 18 Python
Python xlwings插入Excel图片的实现方法
Feb 26 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
PHP 字符串 小常识
2009/06/05 PHP
PHP教程 变量定义
2009/10/23 PHP
PHP设计模式之责任链模式的深入解析
2013/06/13 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
使用PHP开发留言板功能
2019/11/19 PHP
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
python pickle 和 shelve模块的用法
2013/09/16 Python
Python入门篇之字符串
2014/10/17 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
python抓取京东小米8手机配置信息
2018/11/13 Python
python学生管理系统开发
2019/01/30 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
python脚本后台执行方式
2019/12/21 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
js实现移动端H5页面手指滑动刻度尺功能
2017/11/16 HTML / CSS
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
英国领先的新鲜松露和最好的松露产品供应商:TruffleHunter
2019/08/26 全球购物
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
更夫岗位责任制
2014/02/11 职场文书
小学数学国培研修日志
2015/11/13 职场文书
2016年学校招生广告语
2016/01/28 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python
MySQL 聚合函数排序
2021/07/16 MySQL