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实现随机森林random forest的原理及方法
Dec 21 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
May 26 Python
pandas将numpy数组写入到csv的实例
Jul 04 Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 Python
pandas 时间格式转换的实现
Jul 06 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
Python pandas库中的isnull()详解
Dec 26 Python
使用Python获取当前工作目录和执行命令的位置
Mar 09 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
关于django python manage.py startapp 应用名出错异常原因解析
Dec 15 Python
python 递归相关知识总结
Mar 03 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 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代码保护--Zend Guard的使用详解
2013/06/03 PHP
php字符串函数学习之substr()
2015/03/27 PHP
jQuery如何实现点击页面获得当前点击元素的id或其他信息
2014/01/09 Javascript
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
去除html代码里面的script正则方法
2016/05/19 Javascript
浅谈js常用内置方法和对象
2016/09/24 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
Vue EventBus自定义组件事件传递
2018/06/25 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
JS精确判断数据类型代码实例
2019/12/18 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
Python实现简单状态框架的方法
2015/03/19 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
2019/08/21 Python
简单分析python的类变量、实例变量
2019/08/23 Python
python 操作hive pyhs2方式
2019/12/21 Python
什么是封装
2013/03/26 面试题
教师辞职报告范文
2014/01/20 职场文书
学生会招新策划书
2014/02/14 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
六查六看剖析材料
2014/10/06 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
机关单位2016年创先争优活动总结
2016/04/05 职场文书
如何使用python包中的sched事件调度器
2022/04/30 Python