|
|

楼主 |
发表于 2015-5-25 15:18:03
|
显示全部楼层
#写的读取excel的代码部分,也是程序的主体
from openpyxl import load_workbook
wf = load_workbook('负债表.xlsx')
wl = load_workbook('利润表.xlsx')
balance = wf.active
income = wl.active
#----------------------------获取表格范围
报告期=[]
for 列 in range(2, 99):
n = balance.cell(row = 1, column = 列).value
报告期.append(n)
if n==None:
break
报告期.remove(None)
资产负债表=[]
for 行 in range(2, 99):
n=balance.cell(row = 行, column = 1).value
资产负债表.append(n)
if n==None:
break
资产负债表.remove(None)
利润表=[]
for 行 in range(2, 99):
n=income.cell(row = 行, column = 1).value
利润表.append(n)
if n==None:
break
利润表.remove(None)
number资产负债表=len(资产负债表)
number报告期 =len(报告期)
number利润表 = len(利润表)
#------------------------------洗列表-----------------------
for n in range(0,number资产负债表):
vn=资产负债表.pop(n)
a=vn.strip()
资产负债表.insert(n,a)
for n in range(0,number报告期):
vn=报告期.pop(n)
a=vn.strip()
报告期.insert(n,a)
for n in range(0,number利润表):
vn=利润表.pop(n)
a=vn.strip()
利润表.insert(n,a)
#------------------------------------------------------------
#----------------------------------------------------------
class ExcelData:
def __init__(self,sheet,行,列):
self.行 = 行
self.列 = 列
self.sheet=sheet
def getvalue(self):
if self.sheet==资产负债表:
return balance.cell(row = self.行, column = self.列).value
else:
return income.cell(row = self.行, column = self.列).value
#----------------------------------------------------------------
class Getrow:
def __init__(self, sheet , project):
self.sheet = sheet
self.project = project
def getvalue(self):
self.m=0
for self.n in range(2,len(self.sheet)):
self.r = self.project in self.sheet[self.n]
if self.r == True:
self.m=1
return self.n + 2
#----------------------------------------------------------------
class Get:
def __init__(self,sheet, project, date):
self.sheet =sheet
self.project = project
self.date = date
def getvalue(self):
self.行=Getrow(self.sheet,self.project).getvalue()
self.value=ExcelData(self.sheet,self.行,self.date+1).getvalue()
return self.value
由于内容太多,其他的代码用附件传上来。
Python版本是3.4
|
|