from openpyxl import load_workbook
def stable_flow(Data):sum=0for S_Data in Data:sum=sum+S_DataE_average=sum*1.0/len(Data) # calc average of flowrateE_diff=[]n=len(Data) # calc num of flowratefor i in range(n):E_diff.append((Data[i]-E_average)*100.0/E_average) #E_diff is percent for each flowrate from averageprint "E_diff is %s"%E_diff,len(E_diff)R_diff=[]for j in range(n):s_sum=0for i in range(n-j):s_sum=s_sum+E_diff[i]*E_diff[i+j]R_diff.append(s_sum*1.0/(n-j)) # R_diff is the relation parameterprint "R_diff is %s"%R_diff,len(R_diff)for j_min in range(n):Rate=R_diff[j_min]*1.0/R_diff[0] #to find the min Jprint Rateif abs(Rate)<=0.1:breakprint j_minR_sum=0for j in range(j_min+1):R_sum=R_sum+abs(R_diff[j])k=2Eq=((2.0*R_sum/n)**0.5)*kprint "Eq is %.2f %%"%Eqreturn Eqworkbook=load_workbook('''D:\\MASS\\Stability Flow\\Data.xlsx''') #use the address
sheets=workbook.get_sheet_names()
print sheets
booksheet_1=workbook.get_sheet_by_name(sheets[1]) # 第二個sheet “Rig136 small flow rate”
booksheet_2=workbook.get_sheet_by_name(sheets[2]) # 第三個sheet “Rig136 big flow rate”
booksheet=[booksheet_1,booksheet_2]
flowData=[]
smallflowData=[]
bigflowData=[]
Num=72 # need 70 pcs data
for i in range(Num-2):
#Data in column9 beginning from row 3smallflowData.append(booksheet_1.cell(row=i+3,column=9).value)
for j in range(Num-2):bigflowData.append(booksheet_2.cell(row=j+3,column=9).value)print len(smallflowData),len(bigflowData)
Eq_small=stable_flow(smallflowData)
Eq_big=stable_flow(bigflowData)
if Eq_small> Eq_big:flow_Stable=Eq_small
else:flow_Stable=Eq_big
print "Flow stable is %.2f"%flow_Stable