本文实例为大家分享了python操作EXCEL的实例源码,供大家参考,具体内容如下
读EXCEL的操作:把excel的数据存储为字典类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#coding=utf8
#导入读excel的操作库
import xlrd
class GenExceptData( object ):
def __init__( self ):
try :
self .dataDic = {}
#打开工作薄
self .wkbook = xlrd.open_workbook( "Requirement.xls" )
#获取工作表“requirement”
self .dataSheet = self .wkbook.sheet_by_name( "requirement" )
#把数据按 按照相应格式写入excel表中
self .readDataToDicl()
#保存文件
except Exception,e:
print "Read Excel error:" ,e
def readDataToDicl( self ):
try :
nrows = self .dataSheet.nrows
ncols = self .dataSheet.ncols
print ncols ,nrows
try :
for rowNum in range ( 1 ,nrows):
#把数据的当前行的元素与上一行元素作比较
#如果不相等执行if语句
try :
singleJson = {}
propertyName = self .dataSheet.cell(rowNum, 3 ).value
propertyValue = self .dataSheet.cell(rowNum, 4 ).value
if self .dataSheet.cell(rowNum, 0 ).value and self .dataSheet.cell(rowNum, 2 ).value:
mdEvent = self .dataSheet.cell(rowNum, 0 ).value
singleJson[ "serviceId" ] = self .dataSheet.cell(rowNum, 2 ).value
singleJson[propertyName] = propertyValue
print singleJson
self .dataDic[mdEvent] = singleJson
singleJson.clear()
except Exception,e:
print "Get Data Error:" ,e
except Exception,e:
print "Reading Data Error:" ,e
except Exception,e:
print "Reading Data TO Dic Error:" ,e
def test():
GenExceptData()
if __name__ = = "__main__" :
test()
|
写EXCEL的操作:把csv文件的数据按照需求写入到excel文件中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#coding=utf8
from readCSV import readCSV
import xlwt
class GenTestCase():
def __init__( self ,path = "E:\\PythonDemo\\OperExcel\\Demo.csv" ):
self .dataInfor = readCSV(path)
#创建工作薄
self .wkbook = xlwt.Workbook()
#创建表:“埋点需求”
self .dataSheet = self .wkbook.add_sheet( "shellt" )
self .creatHead()
def creatHead( self ):
firstLine = []
#创建表头
for index in range ( len (firstLine)):
self .dataSheet.write( 0 ,index,firstLine[index])
dataBody = self .dataInfor. buffer
print dataBody.__len__()
currentrow = 1
for rowNum in range ( 1 , len (dataBody)):
for index in range ( len (dataBody[rowNum])):
if rowNum> 1 :
if dataBody[rowNum - 1 ][ 0 ]! = dataBody[rowNum][ 0 ] :
print currentrow,rowNum
if currentrow = = 1 :
for cols in range ( 3 ):
cellValue = dataBody[currentrow][cols]
cellValue = cellValue.decode( "gbk" )
data = u "%s" % (cellValue)
self .dataSheet.write_merge(currentrow,rowNum - 1 ,cols,cols,data)
for cols in range ( 6 , 13 ):
cellValue = dataBody[currentrow][cols]
cellValue = cellValue.decode( "gbk" )
data = u "%s" % (cellValue)
self .dataSheet.write_merge(currentrow,rowNum - 1 ,cols,cols,data)
else :
for cols in range ( 3 ):
cellValue = dataBody[currentrow][cols]
cellValue = cellValue.decode( "gbk" )
data = u "%s" % (cellValue)
self .dataSheet.write_merge(currentrow - 1 ,rowNum - 1 ,cols,cols,data)
for cols in range ( 6 , 12 ):
cellValue = dataBody[currentrow][cols]
cellValue = cellValue.decode( "gbk" )
data = u "%s" % (cellValue)
self .dataSheet.write_merge(currentrow - 1 ,rowNum - 1 ,cols,cols,data)
currentrow = rowNum + 1 break
for cols in range ( 3 , 6 ):
cellValue = dataBody[rowNum][cols]
cellValue = cellValue.decode( "gbk" )
data = u "%s" % (cellValue)
self .dataSheet.write(rowNum,cols,data)
self .wkbook.save(r 'reqq.xlsx' )
def test():
GenTestCase()
if __name__ = = "__main__" :
test()
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/henni_719/article/details/78280968