先上几段代码,这个是用python语言改写之前的 java POI读写excel(项目实际需求) 目的是为了更好的掌握python,新手请勿唾弃。呵呵
ReadXlsExcel
# -*- coding: utf-8 -*- __author__ = 'Administrator' import xlrd,time from CompareExcel import * from ireadexcel.IReadExcel import IReadExcelclass ReadXlsExcel(IReadExcel):
def init(self):
print 'readExcel------init----'def readExcel(self,reportType='reportType'): print '2222222' def open_excel(file = 'file.xls'): try : data = xlrd.open_workbook(file) return data except Exception ,e: print str(e) #根据索引获取excel表格中的数据 参数:file:excel文件路径 comnameindex:表头列名所在行的所以 ,by——inde 表的索引 def excel_table_byindex(file = 'file.xls',colnameindex = 6,by_index =0,p='p'): data = p.open_excel(file) table = data.sheets()[by_index] nrows = table.nrows #行数 ncols = table.ncols #列数 colnames = table.row_values(colnameindex) #某一行的数据 print colnames list = [] #空的列表 for rownum in range(1,nrows) : row = table.row_values(rownum) if row : app = {} #定义一个空的字典 for i in range(len(colnames)) : #如果你需要一个数值序列,内置函数range()可能会很有用,它生成一个等差级数链表 app[colnames[i]] = row[i] list.append() return list #根据名称获取excel表格中的数据 参数file:excel文件路径 colnameindex:表头列名所在行的所以,by_name :sheet1名称 def excel_table_byname(file = 'file.xls',colnameindex = 3,by_name =u'Sheet1',p1='p'): data = p1.open_excel(file) table = data.sheet_by_name(by_name) nrows = table.nrows #行数 #colnames = table.row_values(6) #某一行的数据 list =[] for rownum in range(1,nrows): row = table.row_values(rownum) if row : app = {} for i in range(len(row)): app[i] = row[i] list.append(app) #这里的数据结构类似于在java中的list里放了很多map,这里的map为key值为每一列的列数,value对应的列对应的值,一行对应一个map return list def mai(): #for i in range(1,73): print time.time() p2 = ReadXlsExcel() tables = p2.excel_table_byname(file="e:\\report\\alipay.xls",colnameindex=3,p1=p2) print time.time() return tables
if name=="main":
list = ReadXlsExcel.mai() com = CompareExcel() com.compareExcel(alipaylist=list)
CompareExcel
# -*- coding: utf-8 -*- __author__ = 'Administrator' class CompareExcel: def __init__(self): print 'init------'def compareExcel(self,qlylist='listqlyDict',alipaylist ='listalipayDict'): '''这里的算法为,比较tp的票号,和qly的票号是否相同,如果相同,则比较他们的金额是否相同,然后将比对的结果计入到相同的数据结构中''' print 'compare' for alipay in alipaylist: #alipay业务流水号 alipay_key = alipay[1] for qly in qlylist: #qly业务流水号 qly_key = qly[16] print alipay_key #for q in qly.keys():</pre>
后面会陆续补充直到完成
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于