从熊猫到金雅的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我想访问同一类的不同函数中的函数变量   创建字段/值哈希映射的java反射   java Velocity工具向后兼容性?   cmd JAVA运行时错误:发生JNI错误   java spring引导示例hateoas不工作   java为什么Android Studio和gradle可以使用不同的类路径进行单元测试?   java Selenium Firefox驱动程序初始化   java如何在jar中重新定位gradle依赖项的包   java为什么我的单线程hello world应用程序使用22个OS线程?   正则表达式替换Java字符串中的特殊字符   在任何派生类的构造函数之后运行方法的java   java从输入字符串中找出日期   带有libGdx(Java)音乐的安卓studio可以在Android模拟器上工作,但不能在桌面上工作   java我在getconnection的参数方面有错误吗?   java使用JFileChooser访问选定文件   java如何将Json解析为另一个活动   java使用Resources for html和rest server   java更新列表,列表内容来自循环中的方法   java如何在GLSL中读取完整范围的32位整数纹理