最近由于经常要用到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就这么!些了,简单吧