Python读写Excel文件
转载:https://www.cnblogs.com/goodhacker/archive/2013/04/12/3016183.html
最近由于经常要用到Excel,需要根据Excel表格中的内容对一些apk进行处理,手动处理很麻烦,于是决定写脚本来处理。首先贴出网上找来的读写Excel的脚本。
1.读取Excel(需要安装xlrd):
1 #-*- coding: utf8 -*- 2 import xlrd 3 4 fname = "reflect.xls" 5 bk = xlrd.open_workbook(fname) 6 shxrange = range(bk.nsheets) 7 try: 8 sh = bk.sheet_by_name("Sheet1") 9 except: 10 print "no sheet in %s named Sheet1" % fname 11 #获取行数 12 nrows = sh.nrows 13 #获取列数 14 ncols = sh.ncols 15 print "nrows %d, ncols %d" % (nrows,ncols) 16 #获取第一行第一列数据 17 cell_value = sh.cell_value(1,1) 18 #print cell_value 19 20 row_list = [] 21 #获取各行数据 22 for i in range(1,nrows): 23 row_data = sh.row_values(i) 24 row_list.append(row_data)
2.写入Excel(需安装pyExcelerator)
1 from pyExcelerator import * 2 3 w = Workbook() #创建一个工作簿 4 ws = w.add_sheet('Hey, Hades') #创建一个工作表 5 ws.write(0,0,'bit') #在1行1列写入bit 6 ws.write(0,1,'huang') #在1行2列写入huang 7 ws.write(1,0,'xuan') #在2行1列写入xuan 8 w.save('mini.xls') #保存
3.再举个自己写的读写Excel的例子
读取reflect.xls中的某些信息进行处理后写入mini.xls文件中。
1 #-*- coding: utf8 -*- 2 import xlrd 3 from pyExcelerator import * 4 5 w = Workbook() 6 ws = w.add_sheet('Sheet1') 7 8 fname = "reflect.xls" 9 bk = xlrd.open_workbook(fname) 10 shxrange = range(bk.nsheets) 11 try: 12 sh = bk.sheet_by_name("Sheet1") 13 except: 14 print "no sheet in %s named Sheet1" % fname 15 16 nrows = sh.nrows 17 ncols = sh.ncols 18 print "nrows %d, ncols %d" % (nrows,ncols) 19 20 cell_value = sh.cell_value(1,1) 21 #print cell_value 22 23 row_list = [] 24 mydata = [] 25 for i in range(1,nrows): 26 row_data = sh.row_values(i) 27 pkgdatas = row_data[3].split(',') 28 #pkgdatas.split(',') 29 #获取每个包的前两个字段 30 for pkgdata in pkgdatas: 31 pkgdata = '.'.join((pkgdata.split('.'))[:2]) 32 mydata.append(pkgdata) 33 #将列表排序 34 mydata = list(set(mydata)) 35 print mydata 36 #将列表转化为字符串 37 mydata = ','.join(mydata) 38 #写入数据到每行的第一列 39 ws.write(i,0,mydata) 40 mydata = [] 41 row_list.append(row_data[3]) 42 #print row_list 43 44 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/")
好了,python操作Excel就这么!些了,简单吧