from openpyxl import load_workbook ''' @File : @Author : william @Time : 2020/09/29 @notice : null @coding : utf-8 ''' import xlrd from xlutils.copy import copy import openpyxl ws_fuzhaibiao_D13='' ws_fuzhaibiao_C19='' ws_fuzhaibiao_C8='' ws_fuzhaibiao_C13='' ws_fuzhaibiao_C23='' ws_fuzhaibiao_C24='' ws_fuzhaibiao_C35='' ws_fuzhaibiao_G26='' ws_lirunbiao_C4='' ws_lirunbiao_C5='' ws_lirunbiao_C6='' ws_lirunbiao_C14='' ws_lirunbiao_C24='' ws_lirunbiao_C25='' ws_lirunbiao_C27='' ws_lirunbiao_C33='' ws_lirunbiao_C34='' ws_lirunbiao_C22='' ws_nashuishenbaobiao_Z20=0 print(ws_nashuishenbaobiao_Z20) ws_nashuishenbaobiao_Z21=0 ws_nashuishenbaobiao_Z23=0 ws_nashuishenbaobiao_Z24=0 ws_nashuishenbaobiao_Z30=0 ws_nashuishenbaobiao_Z31=0 ws_nashuishenbaobiao_Z32=0 #如下代码用于多个相关表的打开操作 fn_fuzhaibiao = '资产负债表.xlsx' wb_fuzhaibiao = openpyxl.load_workbook(fn_fuzhaibiao) ws_fuzhaibiao = wb_fuzhaibiao.get_sheet_by_name('资产负债表') fn_lirunbiao = '利润表.xlsx' wb_lirunbiao = openpyxl.load_workbook(fn_lirunbiao) ws_lirunbiao = wb_lirunbiao.get_sheet_by_name('利润表') fn_caiwuzhuangkuangbiao = '财务状况表.xlsx' wb_caiwuzhuangkuangbiao = openpyxl.load_workbook(fn_caiwuzhuangkuangbiao) ws_caiwuzhuangkuangbiao = wb_caiwuzhuangkuangbiao.get_sheet_by_name('财务状况表') fn_nashuishenbaobiao = '纳税申报表.xlsx' wb_nashuishenbaobiao = openpyxl.load_workbook(fn_nashuishenbaobiao) ws_nashuishenbaobiao = wb_nashuishenbaobiao.get_sheet_by_name('纳税申报表') #如下代码用于将多个表中的相关数据写入财务状况表 all_sheets_fuzhaibiao = wb_fuzhaibiao.get_sheet_names() print(all_sheets_fuzhaibiao) sheet_fuzhaibiao = wb_fuzhaibiao.get_sheet_by_name(all_sheets_fuzhaibiao[0]) for row in sheet_fuzhaibiao.iter_rows(): for cell in row: if str(cell.value).find("存货") != -1: ws_fuzhaibiao_D13=sheet_fuzhaibiao.cell(row=cell.row,column=int(cell.column)+3).value for row in sheet_fuzhaibiao.iter_rows(): for cell in row: if str(cell.value).find("流动资产合计") != -1 and str(cell.value).find("非流动资产合计") == -1 : ws_fuzhaibiao_C19=sheet_fuzhaibiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_fuzhaibiao.iter_rows(): for cell in row: if str(cell.value).find("应收账款") != -1: ws_fuzhaibiao_C8=sheet_fuzhaibiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_fuzhaibiao.iter_rows(): for cell in row: if str(cell.value).find("存货") != -1: ws_fuzhaibiao_C13=sheet_fuzhaibiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_fuzhaibiao.iter_rows(): for cell in row: if str(cell.value).find("固定资产原价") != -1: ws_fuzhaibiao_C23=sheet_fuzhaibiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_fuzhaibiao.iter_rows(): for cell in row: if str(cell.value).find("累计折旧") != -1: ws_fuzhaibiao_C24=sheet_fuzhaibiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_fuzhaibiao.iter_rows(): for cell in row: if str(cell.value).find("资产总计") != -1: ws_fuzhaibiao_C35=sheet_fuzhaibiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_fuzhaibiao.iter_rows(): for cell in row: if str(cell.value).find("负债合计") == 0: ws_fuzhaibiao_G26=sheet_fuzhaibiao.cell(row=cell.row,column=int(cell.column)+2).value all_sheets_lirunbiao = wb_lirunbiao.get_sheet_names() print(all_sheets_lirunbiao) sheet_lirunbiao = wb_lirunbiao.get_sheet_by_name(all_sheets_lirunbiao[0]) for row in sheet_lirunbiao.iter_rows(): for cell in row: if str(cell.value).find("营业收入") != -1: ws_lirunbiao_C4=sheet_lirunbiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_lirunbiao.iter_rows(): for cell in row: if str(cell.value).find("营业成本") != -1: ws_lirunbiao_C5=sheet_lirunbiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_lirunbiao.iter_rows(): for cell in row: if str(cell.value).find("税金及附加") != -1: ws_lirunbiao_C6=sheet_lirunbiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_lirunbiao.iter_rows(): for cell in row: if str(cell.value).find("销售费用") != -1: ws_lirunbiao_C14=sheet_lirunbiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_lirunbiao.iter_rows(): for cell in row: if str(cell.value).find("管理费用") != -1: ws_lirunbiao_C17=sheet_lirunbiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_lirunbiao.iter_rows(): for cell in row: if str(cell.value).find("研发费用") != -1: ws_lirunbiao_C20=sheet_lirunbiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_lirunbiao.iter_rows(): for cell in row: if str(cell.value).find("财务费用") != -1: ws_lirunbiao_C22 = sheet_lirunbiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_lirunbiao.iter_rows(): for cell in row: if str(cell.value).find("营业利润") != -1: ws_lirunbiao_C24=sheet_lirunbiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_lirunbiao.iter_rows(): for cell in row: if str(cell.value).find("营业外收入") != -1: ws_lirunbiao_C25=sheet_lirunbiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_lirunbiao.iter_rows(): for cell in row: if str(cell.value).find("营业外支出") != -1: ws_lirunbiao_C27=sheet_lirunbiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_lirunbiao.iter_rows(): for cell in row: if str(cell.value).find("利润总额") != -1: ws_lirunbiao_C33=sheet_lirunbiao.cell(row=cell.row,column=int(cell.column)+2).value for row in sheet_lirunbiao.iter_rows(): for cell in row: if str(cell.value).find("所得税费用") != -1: ws_lirunbiao_C34=sheet_lirunbiao.cell(row=cell.row,column=int(cell.column)+2).value all_sheets_nashuishenbaobiao = wb_nashuishenbaobiao.get_sheet_names() print(all_sheets_nashuishenbaobiao) sheet_nashuishenbaobiao = wb_nashuishenbaobiao.get_sheet_by_name(all_sheets_nashuishenbaobiao[0]) for row in sheet_nashuishenbaobiao.iter_rows(): for cell in row: if str(cell.value).find("销项税额") != -1: ws_nashuishenbaobiao_Z20=sheet_nashuishenbaobiao.cell(row=cell.row,column=int(cell.column)+24).value for row in sheet_nashuishenbaobiao.iter_rows(): for cell in row: if str(cell.value).find("进项税额 ") != -1 and str(cell.value).find("进项税额转出 ") == -1: ws_nashuishenbaobiao_Z21=sheet_nashuishenbaobiao.cell(row=cell.row,column=int(cell.column)+24).value print(ws_nashuishenbaobiao_Z21) for row in sheet_nashuishenbaobiao.iter_rows(): for cell in row: if str(cell.value).find("进项税额转出") != -1 and str(cell.value).find("进项税额 ") == -1: ws_nashuishenbaobiao_Z23=sheet_nashuishenbaobiao.cell(row=cell.row,column=int(cell.column)+24).value print(ws_nashuishenbaobiao_Z23) for row in sheet_nashuishenbaobiao.iter_rows(): for cell in row: if str(cell.value).find("免、抵、退应退税额") != -1: ws_nashuishenbaobiao_Z24=sheet_nashuishenbaobiao.cell(row=cell.row,column=int(cell.column)+24).value print(ws_nashuishenbaobiao_Z24) for row in sheet_nashuishenbaobiao.iter_rows(): for cell in row: if str(cell.value).find("简易计税办法计算的应纳税额") != -1: ws_nashuishenbaobiao_Z30=sheet_nashuishenbaobiao.cell(row=cell.row,column=int(cell.column)+24).value print(ws_nashuishenbaobiao_Z30) for row in sheet_nashuishenbaobiao.iter_rows(): for cell in row: if str(cell.value).find("按简易计税办法计算的纳税检查应补缴税额") != -1: ws_nashuishenbaobiao_Z31=sheet_nashuishenbaobiao.cell(row=cell.row,column=int(cell.column)+24).value print(ws_nashuishenbaobiao_Z31) for row in sheet_nashuishenbaobiao.iter_rows(): for cell in row: if str(cell.value).find("应纳税额减征额") != -1: ws_nashuishenbaobiao_Z32=sheet_nashuishenbaobiao.cell(row=cell.row,column=int(cell.column)+24).value print(ws_nashuishenbaobiao_Z32) ws_caiwuzhuangkuangbiao['E3'] = ws_fuzhaibiao_D13 ws_caiwuzhuangkuangbiao['E5'] = ws_fuzhaibiao_C19 ws_caiwuzhuangkuangbiao['E6'] = ws_fuzhaibiao_C8 ws_caiwuzhuangkuangbiao['E7'] = ws_fuzhaibiao_C13 ws_caiwuzhuangkuangbiao['E8'] = ws_fuzhaibiao_C23 ws_caiwuzhuangkuangbiao['E10'] = ws_fuzhaibiao_C24 ws_caiwuzhuangkuangbiao['E11'] = ws_fuzhaibiao_C35 ws_caiwuzhuangkuangbiao['E12'] = ws_fuzhaibiao_G26 ws_caiwuzhuangkuangbiao['E14'] = ws_lirunbiao_C4 ws_caiwuzhuangkuangbiao['E15'] = ws_lirunbiao_C5 ws_caiwuzhuangkuangbiao['E16'] = ws_lirunbiao_C6 ws_caiwuzhuangkuangbiao['E17'] = ws_lirunbiao_C14 ws_caiwuzhuangkuangbiao['E23'] = ws_lirunbiao_C24 ws_caiwuzhuangkuangbiao['E24'] = ws_lirunbiao_C25 ws_caiwuzhuangkuangbiao['E25'] = ws_lirunbiao_C27 ws_caiwuzhuangkuangbiao['E26'] = ws_lirunbiao_C33 ws_caiwuzhuangkuangbiao['E27'] = ws_lirunbiao_C34 #如下代码用于将多个表中的相关数据写入财务状况表------特例:利润表中利息费用指标,如果为正计财务状况表的利息收入,如果为负数计财务状况表的利息费用 if (ws_lirunbiao_C22 < 0): ws_caiwuzhuangkuangbiao['E21'] = abs(ws_lirunbiao_C22) else: ws_caiwuzhuangkuangbiao['E22'] = ws_lirunbiao_C22 ws_caiwuzhuangkuangbiao['E28'] = ws_nashuishenbaobiao_Z20-ws_nashuishenbaobiao_Z21+ws_nashuishenbaobiao_Z23+ws_nashuishenbaobiao_Z24+ws_nashuishenbaobiao_Z30+ws_nashuishenbaobiao_Z31-ws_nashuishenbaobiao_Z32 #保存财务状况表中修改的数据 wb_caiwuzhuangkuangbiao.save('财务状况表.xlsx')