python自动撰写报告程序

一、项目1

1、需求描述
从不同的表中读取数据,并按照不同要求写入到文档中。便于用户进行选择,通过GUI界面实现不同类型文档的书写。
2、实现
关键代码----

#首页开始代码,程序入口
import sys
import download as mw
from PyQt5 import QtWidgets as qw, QtGui
from System_Instruction import SystemInstruction
from debt_loan import WriteFunction
from finan_analy import AnalyFunction
from brochure_data import CollectFunction
class First(qw.QMainWindow):
    def __init__(self):
        super(First, self).__init__()
        self.ui = mw.Ui_Form()
        self.setWindowTitle("数据提取系统")
        self.setWindowIcon(QtGui.QIcon(':/re/icon.jpg'))
        self.write_functions = WriteFunction(self.ui, self)
        self.analy_functions = AnalyFunction(self.ui,self)
        self.write_functions = WriteFunction(self.ui, self)
        self.bro_functions = CollectFunction(self.ui,self)
        self.systemInstruction=SystemInstruction(self.ui,self)
        # 调用Ui_setup方法动态创建控件
        self.ui.setupUi(self)
        self.ui.pushButton.clicked.connect(self.write_functions.report_write)
        self.ui.pushButton_5.clicked.connect(self.analy_functions.analy_write)
        self.ui.pushButton_3.clicked.connect(self.bro_functions.brochure_write)
        self.ui.toolButton.clicked.connect(self.systemInstruction.system_instruct)
        self.ui.toolButton_2.clicked.connect(self.systemInstruction.notice)
        # 显示窗口
def main():
    app = qw.QApplication(sys.argv)
    w = First()
    w.show()
    sys.exit(app.exec_())
if __name__ == '__main__':
    main()

#主要功能代码
 origin_str = month + "月末,南京市全辖金融机构(含外资金融机构,下同)本外币贷款余额为r5c3亿元,同比hfc%,较去年同期r6c0个百分点。当月本外币贷款r5c13亿元,同比r5c11亿元,比年初r5c14亿元,同比r5c12亿元。" + '\n' \
                         + '   ' + month + "月末,金融机构人民币贷款余额为r5c15亿元,同比cny%,较去年同期r7c0个百分点。比上月r5c24亿元,同比r5c22亿元,比年初r5c25亿元,同比r5c23亿元。本月人民币贷款变动的原因是" + '\n' \
                         + '   ' + "外币贷款略有增长。" \
                         + month + "月末,南京市金融机构外币贷款余额为r5c26亿元,同比foreign%,较去年同期r7c1个百分点。比上月r6c34亿元,同比r6c32亿元,比年初r6c35亿元,同比r6c33亿元。"
            # 这儿写对应要替换的值都有哪些(就写你上面设置的那些占位符),都在表格的几行几列   举例:r5c3表示要用的是表格里第5行第3列的值
            change_list = ["r5c3", "r5c11", "r5c12", "r5c13", "r5c14", "hfc", "r5c15", "r5c22", "r5c23", "r5c24",
                           "r5c25", "cny", "r7c0", "r7c1",
                           "r5c26", "r6c32", "r6c33", "r6c34", "r6c35", "foreign", "r6c0"]
            final_str = origin_str
            for rc in change_list:
                temp = eval("sheet1_" + rc)  # 这一行就是取到对应的值,eval表示将这个字符串看作一个变量,也就是当时取excel值的时候起的变量名称
                if isinstance(temp, float):
                    temp = format(temp, ".2f")  # 如果取到的是浮点数的话,就先转换成字符串,并且保留两位小数
                final_str = final_str.replace(rc, temp)  # 这一行就是对应的把占位符(比如”r5c3“)替换成对应的变量值(比如sheet1_r5c3的值)
            print(final_str)
            return final_str

二、项目2

1、需求描述
从一张表格中提取特定字段数值,写入到文档中。

以上具体代码实现皆在“资源”处可以下载。


版权声明:本文为weixin_39272255原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。