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处理json数据中的中文
Mar 06 Python
零基础写python爬虫之打包生成exe文件
Nov 06 Python
Python实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
批处理与python代码混合编程的方法
May 19 Python
Python计时相关操作详解【time,datetime】
May 26 Python
flask框架实现连接sqlite3数据库的方法分析
Jul 16 Python
Python动态生成多维数组的方法示例
Aug 09 Python
Python代码太长换行的实现
Jul 05 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
Aug 30 Python
Python实现元素等待代码实例
Nov 11 Python
python烟花效果的代码实例
Feb 25 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
文章推荐系统(三)
2006/10/09 PHP
手把手教你使用DedeCms V3的在线采集图文教程
2007/04/03 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
PHP合并数组的2种方法小结
2016/11/24 PHP
smarty模板数学运算示例
2016/12/11 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
2014/08/30 Javascript
js数组的操作指南
2014/12/28 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
整理关于Bootstrap导航的慕课笔记
2017/03/29 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
python和shell获取文本内容的方法
2018/06/05 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
Python操作redis和mongoDB的方法
2019/12/19 Python
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
澳大利亚100%丝绸多彩度假装商店:TheSwankStore
2019/09/04 全球购物
自荐信的两点禁忌
2013/10/30 职场文书
绩效专员岗位职责
2013/12/02 职场文书
设备动力科岗位职责范本
2014/02/23 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
任命书格式模板
2015/09/22 职场文书
Python语言内置数据类型
2022/02/24 Python