Python读写Excel文件的实例

 更新时间:2013年11月01日 10:33:52   投稿:zxhpj  
很简单的Python读写Excel文件的方法,一看就明白。

最近由于经常要用到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 3.x版本测试通过。

好了,python操作Excel就这么!些了,简单吧

相关文章

  • Python中处理字符串之endswith()方法的使用简介

    Python中处理字符串之endswith()方法的使用简介

    这篇文章主要介绍了Python中处理字符串之endswith()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下
    2015-05-05
  • python之Flask实现简单登录功能的示例代码

    python之Flask实现简单登录功能的示例代码

    这篇文章主要介绍了python之Flask实现简单登录功能的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • python实现银行管理系统

    python实现银行管理系统

    这篇文章主要为大家详细介绍了python实现银行管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • PyCharm最新激活码(2020/10/27全网最新)

    PyCharm最新激活码(2020/10/27全网最新)

    Pycharm最新激活码全网最新(2020/10/27更新),适用Intellij idea 2020.2.x,WebStorm 2020.2.x,Pycharm 2020.2.x
    2020-10-10
  • Centos5.x下升级python到python2.7版本教程

    Centos5.x下升级python到python2.7版本教程

    这篇文章主要介绍了Centos5.x下升级python到python2.7版本教程,本文使用编译安装方式,并配置了一系列需要更改的配置项,需要的朋友可以参考下
    2015-02-02
  • 使用Python的Matplotlib绘制渐变的彩色曲线

    使用Python的Matplotlib绘制渐变的彩色曲线

    这篇文章主要介绍了使用Python的Matplotlib绘制渐变的彩色曲线,Matplotlib是Python生态圈中应用最为广泛的2D绘图库,通过扩展工具包mplot3d,也可以绘制简单的3D模型,需要的朋友可以参考下
    2023-08-08
  • Python中如何将Tqdm与Asyncio结合使用呢

    Python中如何将Tqdm与Asyncio结合使用呢

    这篇文章主要和大家详细介绍了在Python中如何将Tqdm与Asyncio结合使用呢,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-05-05
  • python 3.0 模拟用户登录功能并实现三次错误锁定

    python 3.0 模拟用户登录功能并实现三次错误锁定

    Python的3.0版本,常被称为Python 3000,或简称Py3k。这篇文章主要介绍了python 3.0 模拟用户登录功能并实现三次错误锁定,需要的朋友可以参考下
    2017-11-11
  • pandas DataFrame 交集并集补集的实现

    pandas DataFrame 交集并集补集的实现

    这篇文章主要介绍了pandas DataFrame 交集并集补集的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Python生成验证码实例

    Python生成验证码实例

    这篇文章主要介绍了Python生成验证码的方法,具有很好的实用价值,代码结构清晰易懂,需要的朋友可以参考下
    2014-08-08

最新评论