从熊猫到金雅的HTML生成者

reportlib的Python项目详细描述


报表库

用于Python或Python笔记本的灵活且强大的报表库,其中PandasJinja2支持

Latest Releaselatest release
Licenselicense
Python Versionpython version
Wheelwheel

这是什么?

^ {STR 1 } $RePiRib 是一个Python包,提供快速灵活的实用工具来装饰和呈现报表。因为它基于pandas的样式器,所以它对pandas数据框很友好,所以如果您得到了数据,就可以轻松地显示和导出它。

主要功能

以下是reportlib的一些优点:

  • 基于pandas's Styler的强大灵活的样式器,与熊猫数据文件友好,具有更多的样式方法
  • 具有基本流的灵活报表:将HTML报表导出到文件或通过电子邮件发送报告
  • 对python笔记本很友好,因此您可以用html显示styler或报表
  • 配置分析器:从字符串到其他数据类型,用于从环境或其他配置文件快速获取配置
  • 使用Jinja2支持自定义所有内容:表头和表脚(样式器)、报表模板、css

从何处获取

源代码当前托管在teko的gitlab上,地址为:https://git.teko.vn/data/libs/reportlib

最新版本的二进制安装程序可在Python package index

pip install reportlib

依赖关系:

从源安装:

克隆存储库,然后在reportlib目录中执行以下命令(与克隆git repo后找到此文件的目录相同)

python setup.py install

或者,如果您希望自动拉入所有依赖项,-e选项用于在开发模式下安装它,则可以使用pip:

pip install -e .

基本用法

项目结构

root/ (or root/src/)
 |-+-templates/
 | |-styles.css
 |-report.py
 |-email_config.yml
 |-metadata.yml
 ...

配置报告

exportREPORT_DATE='2019-06-30'exportEMAIL_USERNAME='your.email@gmail.com'exportEMAIL_PASSWORD='email-password'

提交报告

"""report.py"""importosimportpandasaspdimportnumpyasnpfromdatetimeimportdatetimefromdateutil.relativedeltaimportrelativedeltaimportreportlibfromreportlibimportReport,ConfigParser,Styler# Parse config from envconfig=ConfigParser(config=os.environ)report_date=config.date('REPORT_DATE',default='yesterday')# Prepare datadf=pd.DataFrame(np.random.randn(8,4),columns=['a','b','c','d'])# Config reportreportlib.add_template_dir('templates')Styler.set_option('precision',2)Styler.set_option('fillna','-')Styler.set_option('fillinf','-')Styler.set_option('fillzero','-')# Initial generatorreport=Report(styles='styles.css',title='Report Demo',context={'report_date':report_date},html_output='report_output.html',email_config='email_config.yml',email_credentials={'username':config.get('EMAIL_USERNAME'),'password':config.get('EMAIL_PASSWORD'),})# Styling datastyle=(Styler(df).add_class('bold highlight',subset=pd.IndexSlice[0:1,df.columns])# Bold and Highlight some row by using class `highlight`.add_class('text-right',columns=df.columns)# Align right columns)# Add tablesreport.add_table(style)# Run reportreport.run()

完整文档

您可以在Wiki中找到完整的文档

获取帮助

对于用法问题,最好去Full Documentation。此外,对于一般性问题和讨论,您可以create an issue或通过电子邮件nhat.nv@teko.vn或通过Teko's workplace与我联系

对reportlib的贡献

欢迎所有贡献、错误报告、错误修复、文档改进、增强和想法。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java获取范围内的素数和总素数   JAVAlang.IllegalArgumentException:找不到无效的URL或资源。JavaFX图像   java我可以在vaadin中直接流式处理ZipFile吗?   apache poi java poi HSSFsheet如何添加包含图片的页眉和页脚?   java如何在swing中使用GridLayout使列大小不同?   java为什么JPasswordField中的getText()被弃用?   java整数对象是如何创建的?   java在JAAS的策略文件中授予URL权限   linux Openssl(shell脚本)相当于java解密代码   java是无服务器的,结合事件源是可能的吗?   java JPA双向Uknown列   javajavax。加密。IllegalBlockSizeException:解密加密的AES字符串时最后一个块未完成   java如何知道我的ProcessBuilder start()是否成功执行了这些命令   本地特定错误消息中的java插值   java控件SFX通知异常   java文本输入if语句JavaFX   swing java未连接到水平组   java泛型,迭代器>无法访问内部类函数   java如何跳过当前页并写入下一页?   java一次导入许多静态字符串