python生成日报

news2024/11/17 15:39:07

目录

    • 一:日报生成工具
    • 二:日报工具使用方式
    • 三:最终日报生成展示

一:日报生成工具

#!/usr/bin/python
# coding:utf8

class GetHtml(object):
    def __init__(self):
        self._html_head = """<html><body style="background-color:#FAEBD7;">"""
        self._format_html_foot = """<p style="font-family: verdana,arial,
        sans-serif;font-size:10px;font-weight:lighter;">%s</p> """
        self._format_html_head = """<p style="font-family: verdana,arial,
        sans-serif;font-size:%dpx;font-weight:bold;align=center">%s</p> """
        self._html_tail = "</body></html>"
        self._html_p_head = """<p style="font-family: verdana,arial,
        sans-serif;font-size:12px;font-weight:bold;">%s</p> """

        self._table_caption = """ <caption style="caption-side:top;font-size:12px;font-weight:bold;">%s</caption> """

        self._table_head = """<table style="font-family: verdana,arial,
        sans-serif;font-size:11px;color:#000000;border-width: 1px;border-color: #222C44;border-collapse: collapse;" 
        border="1"><tr> """
        self._format_table_th = """<th style="border-width: 1px;padding: 8px;border-style: solid;border-color: 
        #98bf21;background-color: #A7C942;" nowrap>%s</th> """

        self._format_table_td = """<td style="border-width: 1px;padding: 8px;text-align: right;border-style: 
        solid;border-color: #98bf21;background-color: #EAF2D3;" align="center" nowrap>%s</td> """
        self._table_tail = "</table>"
        self._content = ""

        self._table_html = []

    def add_table(self, table_title, th_info, td_info_list):
        table_str = ""
        table_p_head = self._html_p_head % (str(table_title))
        table_str = table_p_head + self._table_head
        # th
        table_str += "<tr>"
        for th in th_info:
            temp_str = self._format_table_th % (str(th))
            table_str += temp_str
        table_str += "</tr>"
        # td
        for td_info in td_info_list:
            table_str += "<tr>"
            for td in td_info:
                temp_str = self._format_table_td % (str(td))
                table_str += temp_str
            table_str += "</tr>"
        table_str += self._table_tail
        self._table_html.append(table_str)

    def add_head(self, head, found_size=18):
        head_str = self._format_html_head % (found_size, str(head))
        self._table_html.append(head_str)

    def add_foot(self, foot):
        foot_str = self._format_html_foot % (str(foot))
        self._table_html.append(foot_str)

    @staticmethod
    def concat_color(a, b):
        """通过a,b对比给a增加高亮显示"""
        cmp_a, cmp_b = float(str(a).strip('%')), float(str(b).strip('%'))
        if cmp_a > cmp_b:
            new_a = '<font color="red">' + '{}↑'.format(a) + '</font>'
        elif cmp_a < cmp_b:
            new_a = '<font color="green">' + '{}↓'.format(a) + '</font>'
        else:
            new_a = a
        return new_a

    def output_html(self):
        """输出HTML文件"""
        html_content = self._html_head
        for s in self._table_html:
            html_content += s
        html_content += self._html_tail
        return html_content


二:日报工具使用方式

  • 生成html对象: html = GetHtml()
  • 给html新增标题: html.add_head(“标题”)
  • html种增加统计表格:
    total_table = list()
            total_header = ["日期", "进件总量", "进件完成量", "延时进件量", "卡单量", "通过量", "拒绝量", "人工量",
                            "通过率(%)", "拒绝率(%)", "平均耗时(秒)"]
    
            # TODO: 查询数据逻辑, 追加到total_table中
    
            if len(total_table) >= 2:
                # 通过率 拒绝率 平均耗时 增加高亮显示
                total_table[0][8] = html.concat_color(a=total_table[0][8], b=total_table[1][8])
                total_table[0][9] = html.concat_color(a=total_table[0][9], b=total_table[1][9])
                total_table[0][10] = html.concat_color(a=total_table[0][10], b=total_table[1][10])
    
            html.add_table("表{}-{}授信机审".format(num, get_product_chinese_name(product_name)), total_header, total_table)
    
  • 输出html整个页面:html.output_html()

三:最终日报生成展示

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/654912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

美颜滤镜SDK在实时视频应用中的应用

随着智能手机的普及和网络带宽的增强&#xff0c;实时视频应用已经成为了人们日常生活中不可或缺的一部分。而在实时视频应用中&#xff0c;美颜滤镜SDK的应用也越来越广泛。本文将介绍美颜滤镜SDK在实时视频应用中的应用。 一、美颜滤镜SDK的概念 美颜滤镜SDK是一种软件开发工…

Jetpack Compose — 让Composable具备生命周期感知

Jetpack Compose — 让Composable具备生命周期感知 我们将研究不同的方法来实现可组合&#xff08;Composable&#xff09;的生命周期感知。我们还将了解可组合生命周期和视图&#xff08;View&#xff09;生命周期之间的区别。 我们将逐步探索不同的解决方案&#xff0c;以寻…

C51/C52单片机,最小系统

一个小白&#xff0c;开始学习单片机&#xff0c;从C51/52开始&#xff0c; 我学习的型号是STC98C52单片机。 STC89C52是一种低功耗、高性能CMOS8位微控制器&#xff0c;具有8K在系统可编程Flash存储器。在单芯片上&#xff0c;拥有灵巧的8位CPU和在系统可编程Flash&#xff0…

NeRF系列(4):Ha-NeRF: Hallucinated Neural Radiance Fields in the Wild论文解读

主页&#xff1a; 主页&#xff1a;Ha-NeRF&#x1f606;: Hallucinated Neural Radiance Fields in the Wildhttps://rover-xingyu.github.io/Ha-NeRF/论文&#xff1a;https://openaccess.thecvf.com/content/CVPR2022/papers/Chen_Hallucinated_Neural_Radiance_Fields_in_…

常用API(Object,Objects,StringBuilder,Math,System,BigDecimal)

1&#xff1a;Object类 1&#xff1a;Object类的作用&#xff1a; 一个类要么默认继承Object类&#xff0c;要么间接继承了Object类&#xff0c;Object类是Java中的祖宗类。Object类的方法是一切子类都可以直接使用的&#xff0c;所以我们要学习Object类的方法。 2&#xff…

容器(第八篇)ansible-模块

ansible是什么&#xff1f; Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。 Ansible能批量配置、部署、…

直线方程y=kx+b 已知两点a,b。求ab中间任一点坐标x,y

参考文章 斜率怎么求 已知斜率及另一点坐标,求另一点坐标方法 三角形斜率 DirectX C 3D编程基础 5 [三角形光栅化] 自制中字 直线方程公式ykxb k斜率&#xff0c;b截距 已知点a&#xff08;1,2&#xff09; b&#xff08;4,3&#xff09;绿色线段 求斜率k(by-ay)/(bx-ax)或(a…

idea运行main方法或Test避免编译整个应用的方法

已建项目中修改 Main函数不biuld : 光标点到main函数里&#xff0c;右键->Modify Run COnfigurations->Modify options Test 不build 或者单独在每个test里 右键-Modify Run COnfigurations->移除build 对于新建工程统一修改配置: File->New Project Setting…

Java30天拿下---第一天(JDK,JRE,JVM,转义字符,注释,代码规范,数据类型)

Java开发&#xff08;30天拿下---第一天&#xff09; 一 hello world以及JDK,JRE,JVM二 转义字符三 注释四 代码规范五 DOS命令&#xff08;了解&#xff09;六 变量1.加号的使用2.数据类型整型浮点型字符类型布尔类型自动类型转换强制类型转换String类型 七 API文档 一 hello …

【备战秋招】每日一题:5月13日美团春招第一题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检&#xff0c;为了更好的阅读体检&#xff0c;&#xff0c;可以查看我的算法学习博客第一题-塔子哥的数字 在线评测链接:P1286 题目描述 塔子哥是一个数学爱好者&#xff0c;他经常思考各种数字之间的奥秘。今天&#xff0c;他想要解决一个有趣的问题&…

业务流程自动化:ThinkAutomation Professional Crack

ThinkAutomation 助力您的业务流程自动化。自动执行本地和基于云的业务流程&#xff0c;以降低成本并节省时间。 自动化传入的通信渠道&#xff0c;监控数据库&#xff0c;对传入的Webhook&#xff0c;Web表单和聊天机器人做出反应。处理文档、附件、本地文件和其他邮件源。 …

TOGAF10®标准中文版(全文目录)

The Open Group是一个通过技术标准实现业务目标的全球联盟。我们拥有超过870个成员组织&#xff0c;成员来自技术社区的各个部门&#xff0c;包括客户、系统和解决方案供应商、工具供应商、集成商和顾问&#xff0c;以及学者和研究人员。 The Open Group的使命是通过以下方式…

33、js - 面试 - 事件循环 微任务 宏任务

1、事件循环♻️&#xff08;EventLoop&#xff09; js是单线程语言&#xff0c;也就是某一刻只能执行一行代码&#xff0c;为了让耗时代码不阻塞其他代码运行&#xff0c;设计了事件循环模型。 事件循环是一个并发模型&#xff0c;负责执行代码、收集异步任务的模型&#xff0…

web性能检测工具lighthouse

About Automated auditing, performance metrics, and best practices for the web. Lighthouse 可以自动检查Web页面的性能。 你可以以多种方式使用它。 浏览器插件 作为浏览器插件&#xff0c;访问chrome网上商店 搜索Lighthouse 插件安装。以两种方式使用。 方式一 安装…

单片机按键软开关:1个引脚实现单片机低电量自己控制给自己断电

背景 类似于手机的开机按键&#xff0c;我们希望在单片机电路上也能实现类似的低电量自动关机、通过按键而不是自锁开关来上电开机。 软开关电路 电路图如下&#xff1a; 当按键按下时&#xff0c;Q1导通&#xff0c;R18右侧变为低电平&#xff0c;进而Q2导通&#xff0c;…

深入探究kubernetes resources - Part 1

在开始使用 Kubernetes 时&#xff0c;社区教给我们的第一件事就是始终为我们 pod 中的每个容器设置 CPU 和内存的请求和限制。 当您指定 Pod 时&#xff0c;您可以选择指定容器需要多少资源。 您指定的最常见资源是 CPU 和内存 (RAM)&#xff1b; apiVersion: v1 kind: Pod …

模糊测试不“模糊”,高效发掘未知漏洞与 0day 攻击

近日&#xff0c;在「DevSecOps软件安全开发实践」课程上&#xff0c;极狐(GitLab) 高级测试工程师衡韬、极狐(GitLab) 高级后端开发工程师田鲁&#xff0c;分享了模糊测试的概念、必要性和在极狐GitLab 上的实践。 以下内容整理自本次直播&#xff0c;你也可以点击&#x1f44…

合宙Air724UG Cat.1模块硬件设计指南--SIM卡接口

SIM卡接口 简介 SIM( Subscriber Identity Module)卡为用户识别模块&#xff0c;内部使用新式单片机及存储器管理结构&#xff0c;包含了大规模的集成电路&#xff0c;同时也称为用户识别卡。通信设备通过SIM卡来识别其用户&#xff0c;只有设备插入SIM卡后才能入网使用。SIM卡…

Javac编译原理:基本结构和工作原理

Javac编译器 文章目录 Javac编译器简介基本结构如何编译程序 工作原理词法分析器语法分析器语义分析器代码生成器 简介 javac是一种编译器&#xff0c;能将一种语言规范转化成另一种语言规范 编译器通常是将便于人理解的语言规范转换成容易理解的语言规范&#xff0c;如C都是…

阿里云服务器价格如何?与其他云服务提供商的价格对比如何?

阿里云服务器价格如何&#xff1f;与其他云服务提供商的价格对比如何&#xff1f;   阿里云服务器价格概述   作为全球领先的云计算服务提供商&#xff0c;阿里云在确保服务器性能和安全性的同时&#xff0c;也非常注重产品的价格竞争力。阿里云服务器&#xff08;ECS&…