def fill_report(self): # 表格:原始数据d for i, d_i in enumerate(self.data['list_d1']): self.report_data[str(i + 1)] = "%.5f" % (d_i) # 一定都是字符串类型 # 表格:逐差法计算10Δd for i, d_i in enumerate(self.data['list_d2']): self.report_data[str(i + 10)] = "%.5f" % (d_i) for i, dif_d_i in enumerate(self.data['list_dtx']): self.report_data["10d-%d" % (i + 1)] = "%.5f" % (dif_d_i) # 最终结果 # 将各个变量以及不确定度的结果导入实验报告,在实际编写中需根据实验报告的具体要求设定保留几位小数 self.report_data['f_1'] = "%.4f" % self.data['list_f'][0] self.report_data['f_2'] = "%.4f" % self.data['list_f'][1] self.report_data['ave_f'] = "%.4f" % self.data['num_ave_f'] self.report_data['d_f'] = "%.4f" % self.data['num_delta_f'] self.report_data['fin_lbd'] = self.data['num_fin_lbd'] self.report_data['u_f'] = "%.5f" % self.data['num_u_f'] self.report_data['c'] = "%.5f" % self.data['num_c'] self.report_data['u_c_c'] = "%.4f" % self.data['num_u_c_c'] self.report_data['u_c'] = "%.4f" % self.data['num_u_c'] self.report_data['fin_c'] = self.data['num_fin_c'] self.report_data['fin_f'] = self.data['num_fin_f'] self.report_data['d'] = "%.5f" % self.data['num_d'] self.report_data['lbd'] = "%.5f" % self.data['num_lbd'] self.report_data['ua_d'] = "%.4f" % self.data['num_ua_d'] self.report_data['ub1_d'] = "%.4f" % self.data['num_ub1_d'] self.report_data['ub2_d'] = "%.4f" % self.data['num_ub2_d'] self.report_data['u_d'] = "%.4f" % self.data['num_u_d'] self.report_data['u_lbd'] = "%.4f" % self.data['num_u_lbd'] # 调用ReportWriter类 RW = ReportWriter() RW.load_replace_kw(self.report_data) RW.fill_report(self.REPORT_TEMPLATE_FILENAME, self.REPORT_OUTPUT_FILENAME)
def fill_report(self): # 表格:原始数据d for i, volt in enumerate(self.volt_list): self.report_data['V%d' % (i + 1)] = "%d" % (volt) # 静态法电压 for i in range(6): for j in range(5): self.report_data['%d-%d' % (i + 1, j + 1)] = "%.2f" % ( self.time_list[i][j]) #时间 m = self.data['m'] for i in range(len(m)): self.report_data['q%d' % (i + 1)] = "%.2f*10e(-19)" % (m[i][1] * (10**19)) #油滴电荷量 self.report_data['e%d' % (i + 1)] = "%.2f*10e(-19)" % (m[i][2] * (10**19)) #实验e数值 self.report_data['n%d' % (i + 1)] = "%d" % (m[i][3]) #油滴单位电荷数目 self.report_data['rel_err%d' % (i + 1)] = "%.3f" % (abs(m[i][4])) #相对误差 for i, Ave in enumerate(self.time_Ave): self.report_data['Ave%d' % (i + 1)] = "%.2f" % (Ave) #时间均值 self.report_data['final'] = "%.2f*10e(-19)" % ( (self.data['final']) * (10**19)) #最后结果不带不确定度 self.report_data['rel_err'] = "%.3f" % (self.data['rel_err']) # 调用ReportWriter类 RW = ReportWriter() RW.load_replace_kw(self.report_data) RW.fill_report(self.REPORT_TEMPLATE_FILENAME, self.REPORT_OUTPUT_FILENAME)
def fill_report(self): #1061_1 for i, list_u_1_i in enumerate(self.data['list_u_1']): self.report_data[u_1_(i + 1)] = "%.1f" % (list_u_1_i) for i, list_u_2_i in enumerate(self.data['list_u_2']): self.report_data[u_2_(i + 1)] = "%.1f" % (list_u_2_i) for i, list_v_1_i in enumerate(self.data['list_v_1']): self.report_data[v_1_(i + 1)] = "%.1f" % (list_v_1_i) for i, list_v_2_i in enumerate(self.data['list_v_2']): self.report_data[v_2_(i + 1)] = "%.1f" % (list_v_2_i) self.report_data['f_1'] = "%.1f" % f_1 self.report_data['f_2'] = "%.1f" % f_2 for i, list_f1_i in enumerate(self.data['list_f1']): self.report_data[f1_(i + 1)] = "%.1f" % (list_f1_i) for i, list_f2_i in enumerate(self.data['list_f2']): self.report_data[f2_(i + 1)] = "%.1f" % (list_f2_i) #1061_2 for i, list_x_1_i in enumerate(self.data['x_1']): self.report_data[x_1_(i + 1)] = "%.1f" % (list_x_1_i) for i, list_x_2_i in enumerate(self.data['x_2']): self.report_data[x_2_(i + 1)] = "%.1f" % (list_x_2_i) for i, list_f_i in enumerate(self.data['list_f']): self.report_data[list_f_(i + 1)] = "%.1f" % (list_f_i) self.report_data['num_u_f'] = "%.3f" % self.data['num_u_f'] self.report_data["final_f"] = "%.1f±%.1f" % (num_f, num_u_f) #1061_3 for i, list_a_i in enumerate(self.data['list_a']): self.report_data[a_(i + 1)] = "%.1f" % (list_a_i) for i, list_b_i in enumerate(self.data['list_b']): self.report_data[b_(i + 1)] = "%.1f" % (list_b_i) for i, list_3_f_i in enumerate(self.data['list_3_f']): self.report_data[3_f_(i + 1)] = "%.1f" % (list_3_f_i) self.report_data['final_3_f'] = "%.1f" % self.data['final_3_f'] self.report_data['u_3_f'] = "%.3f" % self.data['u_3_f'] #1061_4 # 调用ReportWriter类 RW = ReportWriter() RW.load_replace_kw(self.report_data) RW.fill_report(self.REPORT_TEMPLATE_FILENAME, self.REPORT_OUTPUT_FILENAME)
def fill_report(self): # 表格:xy for i, x_i in enumerate(self.data['list_x']): self.report_data[str(i + 1)] = "%.5f" % (x_i) for i, y_i in enumerate(self.data['list_y']): self.report_data[str(i + 101)] = "%.5f" % (y_i) # 最终结果 self.report_data['L'] = self.data['L'] self.report_data['K'] = self.data['K'] self.report_data['J'] = self.data['J'] self.report_data['Ua'] = self.data['Ua'] self.report_data['UJ'] = self.data['UJ'] RW = ReportWriter() RW.load_replace_kw(self.report_data) RW.fill_report(self.REPORT_TEMPLATE_FILENAME, self.REPORT_OUTPUT_FILENAME)
def fill_report(self): # 表格:原始数据d for i, d_i in enumerate(self.data['d_arr']): self.report_data[str(i + 1)] = "%.5f" % (d_i) # 一定都是字符串类型 # 表格:逐差法计算5Δd for i, dif_d_i in enumerate(self.data['dif_d_arr']): self.report_data["5d-%d" % (i + 1)] = "%.5f" % (dif_d_i) # 最终结果 self.report_data['final'] = self.data['final'] # 将各个变量以及不确定度的结果导入实验报告 for key in self.report_data_keys: if not key in self.report_data.keys() and key in self.data.keys(): self.report_data[key] = "%.5f" % (self.data[key]) # 调用ReportWriter类 RW = ReportWriter() RW.load_replace_kw(self.report_data) RW.fill_report(self.REPORT_TEMPLATE_FILENAME, self.REPORT_OUTPUT_FILENAME)
def fill_report(self): for i, list_f_s_i in enumerate(self.data['list_f_s']): self.report_data['f_s_(i + 1)'] = "%.2f" % (list_f_s_i) for i, list_phi_0_i in enumerate(self.data['list_phi_0']): self.report_data['phi_0_(i + 1)'] = "%.4f" % (list_phi_0_i) for i, list_phi_1_i in enumerate(self.data['list_phi_1']): self.report_data['phi_1_(i + 1)'] = "%.2f" % (list_phi_1_i) self.report_data['b'] = self.data['num_b'] self.report_data['v_s'] ="%.2f" % self.data['num_v_s'] self.report_data['percent'] = "%.2f" % self.data['num_percent'] RW = ReportWriter() RW.load_replace_kw(self.report_data) RW.fill_report(self.REPORT_TEMPLATE_FILENAME, self.REPORT_OUTPUT_FILENAME)
def fill_report(self): # 表格:原始数据d for i, d_i in enumerate(self.data['list_d']): self.report_data[str(i + 1)] = "%.1f" % (d_i) # 一定都是字符串类型 # 表格:逐差法计算3Δd for i, dif_d_i in enumerate(self.data['list_dif_d']): self.report_data["3d-%d" % (i + 1)] = "%.1f" % (dif_d_i) # 最终结果 self.report_data['final'] = self.data['final'] # 将各个变量以及不确定度的结果导入实验报告,在实际编写中需根据实验报告的具体要求设定保留几位小数 self.report_data['Ave'] = "%.1f" % self.data['ave_d'] self.report_data['Ua'] = "%.2f" % self.data['Ua'] self.report_data['Ub'] = "%.3f" % self.data['Ub'] self.report_data['U'] = "%.1f" % self.data['U'] self.report_data[ 'relative_error'] = "%.3f" % self.data['relative_error'] # 调用ReportWriter类 RW = ReportWriter() RW.load_replace_kw(self.report_data) RW.fill_report(self.REPORT_TEMPLATE_FILENAME, self.REPORT_OUTPUT_FILENAME)
def fill_report(self): #1062_1 for i, list_y_1_i in enumerate(self.data['list_y_1']): self.report_data['y_1_(i + 1)'] = "%.3f" % (list_y_1_i) # 一定都是字符串类型 for i, list_f_1_i in enumerate(self.data['list_f_1']): self.report_data['f_1_(i + 1)'] = "%.3f" % (list_f_1_i) # 一定都是字符串类型 for i, list_u_i in enumerate(self.data['list_u']): self.report_data['u_1_(i + 1)'] = "%.3f" % (list_u_i) # 一定都是字符串类型 self.report_data['final_1'] = "%.1f" % self.data['final_1'] self.report_data['f_0'] = "%.3f" % self.data['f_0'] self.report_data['delta_yi'] = "%.5f" % self.data['delta_yi'] self.report_data['f_1'] = "%.3f" % self.data['f_1'] self.report_data['u_1'] = "%.3f" % self.data['u_b'] #1062_2 # 调用ReportWriter类 RW = ReportWriter() RW.load_replace_kw(self.report_data) RW.fill_report(self.REPORT_TEMPLATE_FILENAME, self.REPORT_OUTPUT_FILENAME)
def fill_report(self): for i, x_i in enumerate(self.data['list_x']): self.report_data["x" + str(i + 1)] = "%.5f" % (x_i) self.report_data["x2" + str(i + 1)] = "%.5f" % (x_i**2) for i, y_i in enumerate(self.data['list_y']): self.report_data["y" + str(i + 1)] = "%.5f" % (y_i) self.report_data["y2" + str(i + 1)] = "%.5f" % (y_i**2) for i in range(0, 8): self.report_data["xy" + str(i + 1)] = (self.data['list_x'][i]) * ( self.data['list_y'][i]) self.report_data['ave_y'] = "%.4f" % self.data['num_ave_y'] self.report_data['ave_x'] = "%.4f" % self.data['num_ave_x'] self.report_data['b'] = "%.4f" % self.data['num_b'] self.report_data['a'] = "%.4f" % self.data['num_a'] self.report_data['r'] = "%.4f" % self.data['num_r'] self.report_data['Rx'] = "%.4f" % self.data['num_rx'] self.report_data['ua_b'] = "%.4f" % self.data['num_ua_b'] self.report_data['ub_rx_rx'] = "%.4f" % self.data['num_ub_rx_rx'] self.report_data['ub_rx'] = "%.4f" % self.data['num_ub_rx'] self.report_data['u_rx'] = "%.4f" % self.data['num_u_rx'] self.report_data['fin_Rx'] = self.data['str_fin_rx'] self.report_data['dt_2r0'] = self.data['num_dt_2r0'] self.report_data['dt_2r1'] = self.data['num_dt_2r1'] self.report_data['dt_2r2'] = self.data['num_dt_2r2'] self.report_data['2u'] = self.data['num_u_2u'] self.report_data['2d'] = self.data['num_u_2d'] self.report_data['2r2'] = self.data['num_2r2'] self.report_data['2r1'] = self.data['num_2r1'] self.report_data['2r0'] = self.data['num_2r0'] self.report_data['u_2r1_2r0'] = self.data['num_u_2r1_2r0'] self.report_data['u_2ki_2ki'] = self.data['num_u_2ki_2ki'] self.report_data['u_2ki'] = self.data['num_u_2ki'] self.report_data['2ki'] = self.data['num_2ki'] self.report_data['fin_ki'] = self.data['str_fin_ki'] self.report_data['2fin_rg'] = self.data['str_fin_rg'] self.report_data['2ub_r2'] = self.data['num_dt_2r2'] self.report_data['2fin_rg'] = self.data['num_dt_2r2'] self.report_data['3rs'] = self.data['num_3rs'] self.report_data['3v'] = self.data['num_3v'] self.report_data['3d'] = self.data['num_3d'] self.report_data['3rg'] = self.data['num_3rg'] self.report_data['3ki'] = self.data['num_3ki'] # self.report_data['u3_Nm1'] = self.data['num_u3_Nm1'] # self.report_data['u3_Nm2'] = self.data['num_u3_Nm2'] # self.report_data['fin_rg'] = self.data['num_u3_d'] # self.report_data['fin_rg'] = self.data['num_u3_a1'] # self.report_data['fin_rg'] = self.data['num_u3_a2'] self.report_data['u3_rg'] = self.data['num_u3_rg'] self.report_data['u3_ki'] = self.data['num_u3_ki'] self.report_data['fin_3rxh'] = self.data['str_fin_rxh'] self.report_data['3rxh'] = self.data['num_3rxh'] self.report_data['u3_rs'] = self.data['num_u3_rs'] self.report_data['u3_v'] = self.data['num_u3_v'] self.report_data['u3_r'] = self.data['num_u3_r'] self.report_data['u3_d'] = self.data['num_u3_d'] self.report_data['fin_u_3rxh_3rxh'] = self.data['num_u3_rxh_rxh'] self.report_data['fin_u_3rxh'] = self.data['num_u3_rxh'] self.report_data['fin_s_3_rxh'] = self.data['str_fin_rxh'] # self.report_data['u3_rxh'] = self.data['num_u3_rxh'] RW = ReportWriter() RW.load_replace_kw(self.report_data) RW.fill_report(self.REPORT_TEMPLATE_FILENAME, self.REPORT_OUTPUT_FILENAME)
def lightstone_test(): # balance = 1725000000 # begin_date = date(2017,2,1) # end_date = date(2024,1,31) # oid_discount = 98 # # monthly_oid_payments = OID.calc_monthly_oid_payments(balance, begin_date, end_date, oid_discount) # # print (monthly_oid_payments) # # # balance = 300000000 # begin_date = date(2018,9,1) # end_date = date(2024,1,31) # oid_discount = 99.5 # # monthly_oid_payments = OID.calc_monthly_oid_payments(balance, begin_date, end_date, oid_discount) # # print (monthly_oid_payments) # # balance = 1725000000 # begin_date = date(2017,2,1) # end_date = date(2024,1,31) # oid_discount = 98 # initial_oid = OID(balance, begin_date, end_date, oid_discount) # monthly_oid_payments = initial_oid.build_monthly_oid_payments() # # print (monthly_oid_payments) # # balance = 300000000 # begin_date = date(2018,9,1) # end_date = date(2024,1,31) # oid_discount = 99.5 # upsize_oid = OID(balance, begin_date, end_date, oid_discount) # monthly_oid_payments = upsize_oid.build_monthly_oid_payments() # print (monthly_oid_payments) # balance = 1725000000 # begin_date = date(2017,1,17) # end_date = date(2024,1,31) # dfc_rate = 0.04 # initial_dfc = DFC(balance, begin_date, end_date, dfc_rate) # dfc_payments = initial_dfc.build_monthly_dfc_payments() # # print (dfc_payments) # portfolio = 'Lightstone' liquidity_scenario = '2020 Mar AMR Liquidity Test' liquidity_version = 'v1' lightstone_liquidity = Liquidity(portfolio,liquidity_scenario,liquidity_version) # print (len(lightstone_liquidity.capitalStructure)) # for item in lightstone_liquidity.capitalStructure: # print ("==================================================") # if isinstance(item, Debt): # print (item.instrumentID) # print (" --------------------- debt upsizes: ------------------- ") # print (item.upsizes) # print (" --------------------- debt prepays: ------------------- ") # print (item.prepays) # if isinstance(item, OperatingCompany): # print (" --------------------- Operating Company: ------------------- ") # print (item.portfolio) # print (item.financialsScenario) # print (item.financialsVersion) # print (item.financialsTable) """ preset everything we need for running liquidity waterfall """ lightstone_liquidity.set_cashflow_with_waterfall() """ build key components for liquidity """ lightstone_liquidity.analyze_liquidity() financials_df = lightstone_liquidity.get_financials() annual_cashflow_datarows, monthly_cashflow_datarows = lightstone_liquidity.output_liquidity_results() # financials_df.to_csv("lightstone_financials_df.csv") """ Step 4, calling reportwrite to write the designed reports """ wb = 'myfirstkean3report.xlsx' filepath = 'myfirstkean3report.xlsx' data = {'Annual Summary':annual_cashflow_datarows, 'Monthly Summary': monthly_cashflow_datarows} formats = {} test_rw = ReportWriter(wb, data, formats) test_rw.write_data_to_workbook() test_rw.save(filepath)