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
# 下一步还得训练程序
# 使其满足对excel文件名和excel工作薄的识别
# 记得把表格再粘贴下,转成仅值
ws = 0
row_result = 0
column_result = 0
result = 0
#####################################################################锁定资产负债表和工作薄
# 如下代码用于多个相关表的打开操作
fn = '资产负债表.xlsx'
wb = openpyxl.load_workbook(fn)
ws = wb.get_sheet_by_name('资产负债表')
# print(ws)
def getdate(date_row, date_column):
# print(date_row)
# print(date_column)
for row in ws.iter_rows():
for cell in row:
if str(str(cell.value).replace(' ', '')).find(date_row) != -1:
row_result = cell.row
# print(row_result)
else:
result = 0
break
for row in ws.iter_rows():
for cell in row:
if str(str(cell.value).replace(' ', '')).find(date_column) != -1:
column_result = cell.column
# print(column_result)
break
# print(column_result)
if row_result == 0 or column_result == 0:
result = 0
else:
if ws.cell(row=row_result, column=column_result).value != None:
# print(column_result)
result = ws.cell(row=row_result, column=column_result).value
# print(result)
return result
def getdate_lastyear(date_row, date_column):
# print(date_row)
# print(date_column)
for row in ws.iter_rows():
for cell in row:
if str(str(cell.value).replace(' ', '')).find(date_row) != -1:
row_result = cell.row
# print(row_result)
else:
result = 0
break
for row in ws.iter_rows():
for cell in row:
if str(str(cell.value).replace(' ', '')).find(date_column) != -1:
column_result = cell.column + 1
# print(column_result)
break
# print(column_result)
if row_result == 0 or column_result == 0:
result = 0
else:
if ws.cell(row=row_result, column=column_result).value != None:
# print(column_result)
result = ws.cell(row=row_result, column=column_result).value
# print(result)
return result
def getspeed(date_row, date_column):
# print(date_row)
# print(date_column)
for row in ws.iter_rows():
for cell in row:
if str(str(cell.value).replace(' ', '')).find(date_row) != -1:
row_result = cell.row
# print(row_result)
else:
result = 0
break
for row in ws.iter_rows():
for cell in row:
if str(str(cell.value).replace(' ', '')).find(date_column) != -1:
column_result = cell.column + 2
# print(column_result)
break
# print(column_result)
if row_result == 0 or column_result == 0:
result = 0
else:
if ws.cell(row=row_result, column=column_result).value != None:
# print(column_result)
result = ws.cell(row=row_result, column=column_result).value
# print(result)
return result
if __name__ == '__main__':
print("企业数和企业亏损情况")
print(round(getdate('总计', '企业数'), 1));
print('资产情况')
print(round(getdate('总计', '资产总计'), 1));
print(round(getspeed('总计', '资产总计'), 1));
print(round(getdate('一、批发业', '资产总计'), 1));
print(round(getspeed('一、批发业', '资产总计'), 1));
print(round(getdate('二、零售业', '资产总计'), 1));
print(round(getspeed('二、零售业', '资产总计'), 1));
print(round(getdate('三、住宿业', '资产总计'), 1));
print(round(getspeed('三、住宿业', '资产总计'), 1));
print(round(getdate('四、餐饮业', '资产总计'), 1));
print(round(getspeed('四、餐饮业', '资产总计'), 1));
print('负债情况')
print(round(getdate('总计', '负债合计'), 1));
print(round(getspeed('总计', '负债合计'), 1));
print(round(getdate('一、批发业', '负债合计'), 1));
print(round(getspeed('一、批发业', '负债合计'), 1));
print(round(getdate('二、零售业', '负债合计'), 1));
print(round(getspeed('二、零售业', '负债合计'), 1));
print(round(getdate('三、住宿业', '负债合计'), 1));
print(round(getspeed('三、住宿业', '负债合计'), 1));
print(round(getdate('四、餐饮业', '负债合计'), 1));
print(round(getspeed('四、餐饮业', '负债合计'), 1));
print('营业收入')
print(round(getdate('总计', '营业收入'), 1));
print(round(getspeed('总计', '营业收入'), 1));
print(round(getdate('一、批发业', '营业收入'), 1));
print(round(getspeed('一、批发业', '营业收入'), 1));
print(round(getdate('二、零售业', '营业收入'), 1));
print(round(getspeed('二、零售业', '营业收入'), 1));
print(round(getdate('三、住宿业', '营业收入'), 1));
print(round(getspeed('三、住宿业', '营业收入'), 1));
print(round(getdate('四、餐饮业', '营业收入'), 1));
print(round(getspeed('四、餐饮业', '营业收入'), 1));
print('营业成本')
print(round(getdate('总计', '营业成本'), 1));
print(round(getspeed('总计', '营业成本'), 1));
print(round(getdate('一、批发业', '营业成本'), 1));
print(round(getspeed('一、批发业', '营业成本'), 1));
print(round(getdate('二、零售业', '营业成本'), 1));
print(round(getspeed('二、零售业', '营业成本'), 1));
print(round(getdate('三、住宿业', '营业成本'), 1));
print(round(getspeed('三、住宿业', '营业成本'), 1));
print(round(getdate('四、餐饮业', '营业成本'), 1));
print(round(getspeed('四、餐饮业', '营业成本'), 1));
print('营业税金')
print(round(getdate('总计', '税金及附加'), 1));
print(round(getspeed('总计', '税金及附加'), 1));
print(round(getdate('一、批发业', '税金及附加'), 1));
print(round(getspeed('一、批发业', '税金及附加'), 1));
print(round(getdate('二、零售业', '税金及附加'), 1));
print(round(getspeed('二、零售业', '税金及附加'), 1));
print(round(getdate('三、住宿业', '税金及附加'), 1));
print(round(getspeed('三、住宿业', '税金及附加'), 1));
print(round(getdate('四、餐饮业', '税金及附加'), 1));
print(round(getspeed('四、餐饮业', '税金及附加'), 1));
print('四项费用')
print(round(getdate('总计', '销售费用') + getdate('总计', '管理费用') + getdate('总计', '研发费用') + getdate('总计', '财务费用'), 1));
print(
round(((getdate('总计', '销售费用') + getdate('总计', '管理费用') + getdate('总计', '研发费用') + getdate('总计', '财务费用')) / (
getdate_lastyear('总计', '销售费用') + getdate_lastyear('总计', '管理费用') + getdate_lastyear('总计',
'研发费用') + getdate_lastyear(
'总计', '财务费用')) - 1) * 100, 1)
)
print(
round(getdate('一、批发业', '销售费用') + getdate('一、批发业', '管理费用') + getdate('一、批发业', '研发费用') + getdate('一、批发业', '财务费用'),
1));
print(
round(((getdate('一、批发业', '销售费用') + getdate('一、批发业', '管理费用') + getdate('一、批发业', '研发费用') + getdate('一、批发业',
'财务费用')) / (
getdate_lastyear('一、批发业', '销售费用') + getdate_lastyear('一、批发业', '管理费用') + getdate_lastyear(
'一、批发业', '研发费用') + getdate_lastyear('一、批发业', '财务费用')) - 1) * 100, 1)
)
print(
round(getdate('二、零售业', '销售费用') + getdate('二、零售业', '管理费用') + getdate('二、零售业', '研发费用') + getdate('二、零售业', '财务费用'),
1));
print(
round(((getdate('二、零售业', '销售费用') + getdate('二、零售业', '管理费用') + getdate('二、零售业', '研发费用') + getdate('二、零售业',
'财务费用')) / (
getdate_lastyear('二、零售业', '销售费用') + getdate_lastyear('二、零售业', '管理费用') + getdate_lastyear(
'二、零售业', '研发费用') + getdate_lastyear('二、零售业', '财务费用')) - 1) * 100, 1)
)
print(
round(getdate('三、住宿业', '销售费用') + getdate('三、住宿业', '管理费用') + getdate('三、住宿业', '研发费用') + getdate('三、住宿业', '财务费用'),
1));
print(
round(((getdate('三、住宿业', '销售费用') + getdate('三、住宿业', '管理费用') + getdate('三、住宿业', '研发费用') + getdate('三、住宿业',
'财务费用')) / (
getdate_lastyear('三、住宿业', '销售费用') + getdate_lastyear('三、住宿业', '管理费用') + getdate_lastyear(
'三、住宿业', '研发费用') + getdate_lastyear('三、住宿业', '财务费用')) - 1) * 100, 1)
)
print(
round(getdate('四、餐饮业', '销售费用') + getdate('四、餐饮业', '管理费用') + getdate('四、餐饮业', '研发费用') + getdate('四、餐饮业', '财务费用'),
1));
print(
round(((getdate('四、餐饮业', '销售费用') + getdate('四、餐饮业', '管理费用') + getdate('四、餐饮业', '研发费用') + getdate('四、餐饮业',
'财务费用')) / (
getdate_lastyear('四、餐饮业', '销售费用') + getdate_lastyear('四、餐饮业', '管理费用') + getdate_lastyear(
'四、餐饮业', '研发费用') + getdate_lastyear('四、餐饮业', '财务费用')) - 1) * 100, 1)
)
print('营业利润')
print(round(getdate('总计', '营业利润'), 1));
print(round(getspeed('总计', '营业利润'), 1));
print(round(getdate('一、批发业', '营业利润'), 1));
print(round(getspeed('一、批发业', '营业利润'), 1));
print(round(getdate('二、零售业', '营业利润'), 1));
print(round(getspeed('二、零售业', '营业利润'), 1));
print(round(getdate('三、住宿业', '营业利润'), 1));
print(round(getspeed('三、住宿业', '营业利润'), 1));
print(round(getdate('四、餐饮业', '营业利润'), 1));
print(round(getspeed('四、餐饮业', '营业利润'), 1));
print('应交增值税')
print(round(getdate('总计', '应交增值税'), 1));
print(round(getspeed('总计', '应交增值税'), 1));
print(round(getdate('一、批发业', '应交增值税'), 1));
print(round(getspeed('一、批发业', '应交增值税'), 1));
print(round(getdate('二、零售业', '应交增值税'), 1));
print(round(getspeed('二、零售业', '应交增值税'), 1));
print(round(getdate('三、住宿业', '应交增值税'), 1));
print(round(getspeed('三、住宿业', '应交增值税'), 1));
print(round(getdate('四、餐饮业', '应交增值税'), 1));
print(round(getspeed('四、餐饮业', '应交增值税'), 1));
print('资产负债率')
if (getdate('总计', '负债合计') > 0 and getdate('总计', '资产总计') > 0):
print(round(getdate('总计', '负债合计') / getdate('总计', '资产总计') * 100, 1));
else:
print("error")
if (getdate('总计', '资产总计') > 0 and getdate_lastyear('总计', '资产总计') > 0 and getdate('总计',
'负债合计') > 0 and getdate_lastyear(
'总计', '负债合计') > 0):
print(round((getdate('总计', '负债合计') / getdate('总计', '资产总计') - getdate_lastyear('总计', '负债合计') / getdate_lastyear(
'总计', '资产总计')) * 100, 1));
else:
print("error")
if (getdate('一、批发业', '资产总计') > 0 and getdate('一、批发业', '负债合计') > 0):
print(round(getdate('一、批发业', '负债合计') / getdate('一、批发业', '资产总计') * 100, 1));
else:
print("error")
if (getdate('一、批发业', '资产总计') > 0 and getdate_lastyear('一、批发业', '资产总计') > 0 and getdate('一、批发业',
'负债合计') > 0 and getdate_lastyear(
'一、批发业', '负债合计') > 0):
print(round((getdate('一、批发业', '负债合计') / getdate('一、批发业', '资产总计') - getdate_lastyear('一、批发业',
'负债合计') / getdate_lastyear(
'一、批发业', '资产总计')) * 100, 1));
else:
print("error")
if (getdate('二、零售业', '资产总计') > 0 and getdate('二、零售业', '负债合计') > 0):
print(round(getdate('二、零售业', '负债合计') / getdate('二、零售业', '资产总计') * 100, 1));
else:
print("error")
if (getdate('二、零售业', '资产总计') > 0 and getdate_lastyear('二、零售业', '资产总计') > 0 and getdate('二、零售业',
'负债合计') > 0 and getdate_lastyear(
'二、零售业', '负债合计') > 0):
print(round((getdate('二、零售业', '负债合计') / getdate('二、零售业', '资产总计') - getdate_lastyear('二、零售业',
'负债合计') / getdate_lastyear(
'二、零售业', '资产总计')) * 100, 1));
else:
print("error")
if (getdate('三、住宿业', '资产总计') > 0 and getdate('三、住宿业', '负债合计') > 0):
print(round(getdate('三、住宿业', '负债合计') / getdate('三、住宿业', '资产总计') * 100, 1));
else:
print("error")
if (getdate('三、住宿业', '资产总计') > 0 and getdate_lastyear('三、住宿业', '资产总计') > 0 and getdate('三、住宿业',
'负债合计') > 0 and getdate_lastyear(
'三、住宿业', '负债合计') > 0):
print(round((getdate('三、住宿业', '负债合计') / getdate('三、住宿业', '资产总计') - getdate_lastyear('三、住宿业',
'负债合计') / getdate_lastyear(
'三、住宿业', '资产总计')) * 100, 1));
else:
print("error")
if (getdate('三、住宿业', '资产总计') > 0 and getdate('四、餐饮业', '负债合计') > 0):
print(round(getdate('四、餐饮业', '负债合计') / getdate('三、住宿业', '资产总计') * 100, 1));
else:
print("error")
if (getdate('四、餐饮业', '资产总计') > 0 and getdate_lastyear('四、餐饮业', '资产总计') > 0 and getdate('四、餐饮业',
'负债合计') > 0 and getdate_lastyear(
'四、餐饮业', '负债合计') > 0):
print(round((getdate('四、餐饮业', '负债合计') / getdate('四、餐饮业', '资产总计') - getdate_lastyear('四、餐饮业',
'负债合计') / getdate_lastyear(
'四、餐饮业', '资产总计')) * 100, 1));
else:
print("error")
print('毛利率')
if (getdate('总计', '营业收入') > 0 and getdate('总计', '营业成本') > 0):
print(round((1 - getdate('总计', '营业成本') / getdate('总计', '营业收入')) * 100, 1));
else:
print("error")
if (getdate_lastyear('总计', '营业收入') > 0 and getdate('总计', '营业收入') > 0 and getdate_lastyear('总计',
'营业成本') > 0 and getdate(
'总计', '营业成本') > 0):
print(round((getdate_lastyear('总计', '营业成本') / getdate_lastyear('总计', '营业收入') - getdate('总计', '营业成本') / getdate(
'总计', '营业收入')) * 100, 1));
else:
print("error")
if (getdate('一、批发业', '营业收入') > 0 and getdate('一、批发业', '营业成本') > 0):
print(round((1 - getdate('一、批发业', '营业成本') / getdate('一、批发业', '营业收入')) * 100, 1));
else:
print("error")
if (getdate_lastyear('一、批发业', '营业收入') > 0 and getdate('一、批发业', '营业收入') > 0 and getdate_lastyear('一、批发业',
'营业成本') > 0 and getdate(
'一、批发业', '营业成本') > 0):
print(round((getdate_lastyear('一、批发业', '营业成本') / getdate_lastyear('一、批发业', '营业收入') - getdate('一、批发业',
'营业成本') / getdate(
'一、批发业', '营业收入')) * 100, 1));
else:
print("error")
if (getdate('二、零售业', '营业收入') > 0 and getdate('二、零售业', '营业成本') > 0):
print(round((1 - getdate('二、零售业', '营业成本') / getdate('二、零售业', '营业收入')) * 100, 1));
else:
print("error")
if (getdate_lastyear('二、零售业', '营业收入') > 0 and getdate('二、零售业', '营业收入') > 0 and getdate_lastyear('二、零售业',
'营业成本') > 0 and getdate(
'二、零售业', '营业成本') > 0):
print(round((getdate_lastyear('二、零售业', '营业成本') / getdate_lastyear('二、零售业', '营业收入') - getdate('二、零售业',
'营业成本') / getdate(
'二、零售业', '营业收入')) * 100, 1));
else:
print("error")
if (getdate('三、住宿业', '营业收入') > 0 and getdate('三、住宿业', '营业收入') > 0):
print(round((1 - getdate('三、住宿业', '营业成本') / getdate('三、住宿业', '营业收入')) * 100, 1));
else:
print("error")
if (getdate_lastyear('三、住宿业', '营业收入') > 0 and getdate('三、住宿业', '营业收入') > 0 and getdate_lastyear('三、住宿业',
'营业成本') > 0 and getdate(
'三、住宿业', '营业成本') > 0):
print(round((getdate_lastyear('三、住宿业', '营业成本') / getdate_lastyear('三、住宿业', '营业收入') - getdate('三、住宿业',
'营业成本') / getdate(
'三、住宿业', '营业收入')) * 100, 1));
else:
print("error")
if (getdate('四、餐饮业', '营业收入') > 0 and getdate('四、餐饮业', '营业成本') > 0):
print(round((1 - getdate('四、餐饮业', '营业成本') / getdate('四、餐饮业', '营业收入')) * 100, 1));
else:
print("error")
if (getdate_lastyear('四、餐饮业', '营业收入') > 0 and getdate('四、餐饮业', '营业收入') > 0 and getdate_lastyear('四、餐饮业',
'营业成本') > 0 and getdate(
'四、餐饮业', '营业成本') > 0):
print(round((getdate_lastyear('四、餐饮业', '营业成本') / getdate_lastyear('四、餐饮业', '营业收入') - getdate('四、餐饮业',
'营业成本') / getdate(
'四、餐饮业', '营业收入')) * 100, 1));
else:
print("error")
print('营业收入户均值')
if (getdate('一、批发业', '企业数') > 0):
print(round(getdate('一、批发业', '营业收入') / getdate('一、批发业', '企业数') * 10000, 1));
else:
print("error")
if (getdate('二、零售业', '企业数') > 0):
print(round(getdate('二、零售业', '营业收入') / getdate('二、零售业', '企业数') * 10000, 1));
else:
print("error")
if (getdate('三、住宿业', '企业数') > 0):
print(round(getdate('三、住宿业', '营业收入') / getdate('三、住宿业', '企业数') * 10000, 1));
else:
print("error")
if (getdate('四、餐饮业', '企业数') > 0):
print(round(getdate('四、餐饮业', '营业收入') / getdate('四、餐饮业', '企业数') * 10000, 1));
else:
print("error")
print('营业收入人均值')
if (getdate('一、批发业', '从业人员平均人数(人)') > 0):
print(round(getdate('一、批发业', '营业收入') / getdate('一、批发业', '从业人员平均人数(人)') * 10000, 1));
else:
print("error")
if (getdate('二、零售业', '从业人员平均人数(人)') > 0):
print(round(getdate('二、零售业', '营业收入') / getdate('二、零售业', '从业人员平均人数(人)') * 10000, 1));
else:
print("error")
if (getdate('三、住宿业', '从业人员平均人数(人)') > 0):
print(round(getdate('三、住宿业', '营业收入') / getdate('三、住宿业', '从业人员平均人数(人)') * 10000, 1));
else:
print("error")
if (getdate('四、餐饮业', '从业人员平均人数(人)') > 0):
print(round(getdate('四、餐饮业', '营业收入') / getdate('四、餐饮业', '从业人员平均人数(人)') * 10000, 1));
else:
print("error")
print('销售费用')
print(round(getdate('总计', '销售费用'), 1));
print(
round(((getdate('总计', '销售费用')) / (getdate_lastyear('总计', '销售费用')) - 1) * 100, 1)
)
print(round(getdate('一、批发业', '销售费用'), 1));
print(
round(((getdate('一、批发业', '销售费用')) / (getdate_lastyear('一、批发业', '销售费用')) - 1) * 100, 1)
)
print(round(getdate('二、零售业', '销售费用'), 1));
print(
round(((getdate('二、零售业', '销售费用')) / (getdate_lastyear('二、零售业', '销售费用')) - 1) * 100, 1)
)
print(round(getdate('三、住宿业', '销售费用'), 1));
print(
round(((getdate('三、住宿业', '销售费用')) / (getdate_lastyear('三、住宿业', '销售费用')) - 1) * 100, 1)
)
print(round(getdate('四、餐饮业', '销售费用'), 1));
print(
round(((getdate('四、餐饮业', '销售费用')) / (getdate_lastyear('四、餐饮业', '销售费用')) - 1) * 100, 1)
)
print('管理费用')
print(round(getdate('总计', '管理费用'), 1));
print(
round(((getdate('总计', '管理费用')) / (getdate_lastyear('总计', '管理费用')) - 1) * 100, 1)
)
print(round(getdate('一、批发业', '管理费用'), 1));
print(
round(((getdate('一、批发业', '管理费用')) / (getdate_lastyear('一、批发业', '管理费用')) - 1) * 100, 1)
)
print(round(getdate('二、零售业', '管理费用'), 1));
print(
round(((getdate('二、零售业', '管理费用')) / (getdate_lastyear('二、零售业', '管理费用')) - 1) * 100, 1)
)
print(round(getdate('三、住宿业', '管理费用'), 1));
print(
round(((getdate('三、住宿业', '管理费用')) / (getdate_lastyear('三、住宿业', '管理费用')) - 1) * 100, 1)
)
print(round(getdate('四、餐饮业', '管理费用'), 1));
print(
round(((getdate('四、餐饮业', '管理费用')) / (getdate_lastyear('四、餐饮业', '管理费用')) - 1) * 100, 1)
)
print('研发费用')
print(round(getdate('总计', '研发费用'), 1));
print(
round(((getdate('总计', '研发费用')) / (getdate_lastyear('总计', '研发费用')) - 1) * 100, 1)
)
print(round(getdate('一、批发业', '研发费用'), 1));
print(
round(((getdate('一、批发业', '研发费用')) / (getdate_lastyear('一、批发业', '研发费用')) - 1) * 100, 1)
)
print(round(getdate('二、零售业', '研发费用'), 1));
if (getdate_lastyear('二、零售业', '研发费用') > 0):
print(round(((getdate('二、零售业', '研发费用')) / (getdate_lastyear('二、零售业', '研发费用')) - 1) * 100, 1));
else:
print("error")
print(round(getdate('三、住宿业', '研发费用'), 1));
if (getdate_lastyear('三、住宿业', '研发费用') != 0):
print(round(((getdate('三、住宿业', '研发费用')) / (getdate_lastyear('三、住宿业', '研发费用')) - 1) * 100, 1))
else:
print("error")
print(round(getdate('四、餐饮业', '研发费用'), 1));
if (getdate_lastyear('四、餐饮业', '研发费用') != 0):
print(
round(((getdate('四、餐饮业', '研发费用')) / (getdate_lastyear('四、餐饮业', '研发费用')) - 1) * 100, 1)
)
else:
print("error")
print('财务费用')
print(round(getdate('总计', '财务费用'), 1));
print(
round(((getdate('总计', '财务费用')) / (getdate_lastyear('总计', '财务费用')) - 1) * 100, 1)
)
print(round(getdate('一、批发业', '财务费用'), 1));
print(
round(((getdate('一、批发业', '财务费用')) / (getdate_lastyear('一、批发业', '财务费用')) - 1) * 100, 1)
)
print(round(getdate('二、零售业', '财务费用'), 1));
print(
round(((getdate('二、零售业', '财务费用')) / (getdate_lastyear('二、零售业', '财务费用')) - 1) * 100, 1)
)
print(round(getdate('三、住宿业', '财务费用'), 1));
print(
round(((getdate('三、住宿业', '财务费用')) / (getdate_lastyear('三、住宿业', '财务费用')) - 1) * 100, 1)
)
print(round(getdate('四、餐饮业', '财务费用'), 1));
print(
round(((getdate('四、餐饮业', '财务费用')) / (getdate_lastyear('四、餐饮业', '财务费用')) - 1) * 100, 1)
)
自定义汇总表,财务季报数据评估
最新推荐文章于 2025-08-28 22:30:26 发布
该脚本使用openpyxl库读取资产负债表.xlsx文件,并计算多个财务指标,包括企业数、资产总计、负债合计、营业收入、营业成本、税金及附加等。同时,它还计算了各项指标的增长速度,如营业收入、营业成本、销售费用等的同比增长率,并计算了资产负债率和毛利率。脚本按行业分类展示了这些指标,包括批发业、零售业、住宿业和餐饮业。
171万+

被折叠的 条评论
为什么被折叠?



