本人大学刚毕业目前在一家互联网公司从事产品运营工作,一季度刚过,公司需要我出一份产品运营数据报表,由于产品用户数据、订单数据等数据量太大,我希望找一款Bi产品,支持我做出一个精美的可视化报表,还可以让我直接在报表内容查看原始数据文档,我从以下两个点去逐步实现我的需求:

1、数据可视化:在网上找了一些Bi工具,无一例外都需要收费,最后决定自己尝试pyecharts来实现,好在有自学Python的基础,实现起来不难;

2、数据文档在线预览:选了pyecharts之后,由于最后展现的是一个web视图,需要在web页面直接查看原始的excel文档,这个实现难度比较大,网上苦寻三天无果,即将放弃时刻找到了永中云预览插件版,如获至宝,最重要的是只要2行代码即可实现,而且完全免费!

以下是我的数据可视化报表截图:

下面来简单讲下如何实现:

1、数据可视化报表

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Geo, Page, Grid
from pyecharts.globals import ChartType, SymbolType
from pyecharts.charts import Liquid
from pyecharts.charts import Funnel
from pyecharts.globals import ThemeType
from pyecharts.charts import Bar,Bar3D
from pyecharts.charts import Pie
from pyecharts.charts import Line, EffectScatter
from pyecharts import charts

 

Python库:

Pandas:主要来读取excel源数据;

Pyecharts :Bar 柱状图,Pie 饼形图, Geo地图,Liquid 水滴图,Funnel 漏斗图,Line 折线图

当然还有其他图标没有用到有需要的可以到官网查阅相关文档:https://pyecharts.org/#/zh-cn/intro

以其中一个数据视图产品渠道推广和渠道激活为例,我需要做一个饼图来展示

pie_moblie = (
Pie()
.add(
"推广费",
[list(z) for z in zip(qudao_mobile, cost_mobile)],
radius=["20%", "45%"],
center=["22%", "50%"],
rosetype="radius",
label_opts=opts.LabelOpts(is_show=True,formatter='{b}:{d}%' ),
)
.add(
"激活量",
[list(z) for z in zip(qudao_mobile, jihuo_mobile)],
radius=["20%", "45%"],
center=["70%", "50%"],
rosetype="area",
label_opts=opts.LabelOpts(is_show=True,formatter='{b}:{d}%'),
)
.set_global_opts(title_opts=opts.TitleOpts(title="2022年一季度各渠道消耗&激活"),
legend_opts=opts.LegendOpts(is_show=True,)
)
)

 效果如下:

做好各个视图后

page.add(bar3,c3,pie_mobile)
page.render('test.html')

通过page.add()将前面制作的视图放在一个页面,最后通过page.render()生成一个html页面

,再对生成的html做适当的样式调整,就得到了我上面展示的最终效果。

2、文档在线预览:

先下载免费插件 点击下载

将下载好的插件放在html相同的目录下,再按照示例代码把相应的代码加到刚刚生成的html里

        <div id="click" style="text-align: center; font-size: 10px;font-weight: bold;margin-top:40px;margin-bottom: 70px;">点击查看源数据</div>
<script> const url = 'https:/xxxx.com/1.docx'; // url为预览文件地址 document.getElementById('click').onclick = function() { getFileUrl(url) // 调用getFileUrl方法,预览文件 }

 

在URL上填写文件的url地址,这样页面上就会出现“点击查看源数据”,点击后就可以直接在线预览office文件,不需要启动本地Office软件,word excel ppt pdf都支持。

预览效果:

以上就是我这几天自己动手的成果,整个数据视图不需要借助任何软件,便于分享,不管是数据视图还是源文件预览都没有设备和浏览器障碍。

 

告别收费BI!如何自己动手做一个免费的可视化数据报表还支持文档在线预览?的更多相关文章

  1. 做一个新产品需求,体验的分析文档?(例:喜马拉雅FM)

    2.1 战略层 2.11 产品定位: 一款产品覆盖面广,收听节目种类齐全,资源丰富的电台APP. 以PGC为主流,通过合作方式吸纳专业的电台人,节目人,行业名人分享内容. 融合UGC,满足人们在空闲时 ...

  2. [BI项目记]-配置Sharepoint2013支持文档版本管理笔记

    做开发或者做方案,写文档是很重要的一个工作,我们经常需要知道文档被修改的次数,谁在什么时间修改的文档,以及在某一个版本中,都修改了哪些内容,以及不同版本的文档之间有什么差别. 如何对文档进行版本管理, ...

  3. Swagger: 一个restful接口文档在线生成+功能测试软件

    一.什么是 Swagger? Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 ...

  4. Python3基础 函数名.__doc__显示一个函数的单行与多行函数文档

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  5. 分享一个集成在项目中的REST APIs文档框架swagger

    1 为什么是使用swagger? 1-1 当后台开发人员开发好接口,是不是还要重新书写一份接口文档提给前端人员,当然对于程序员最不喜欢的就是书写文档(当然文档是必须的,有利于项目的维护) 1-2 当后 ...

  6. entfrm开发平台,一个免费开源可视化的无代码开发平台

    简介 entfrm开发平台,是一个以模块化为核心的无代码开发平台,是一个集PC和APP快速开发.系统管理.运维监控.开发工具.OAuth2授权.可视化数据源管理与数据构建.API动态生成与统计.工作流 ...

  7. 教你动手做一个 iOS 越狱 app

    前言 俗话说得好, 万事开头难. 仅仅是上图一个如此简单地不能再简单的小app, 其实都不算是app, 只是注入了一段代码进系统中, 等到特定的函数方法调用的时候就会被我们hook掉, 执行我们写的代 ...

  8. [js高手之路]html5 canvas动画教程 - 自己动手做一个类似windows的画图软件

    这个绘图工具,我还没有做完,不过已经实现了总架构,以及常见的简易图形绘制功能: 1,可以绘制直线,圆,矩形,正多边形[已完成] 2,填充颜色和描边颜色的选择[已完成] 3,描边和填充功能的选择[已完成 ...

  9. 图标网站,IcoMoon,自己动手做一个 font

    很有用的IcoMoon,在线制作工工具:https://icomoon.io/app/#/select/font 大神解说:如何灵活利用免费开源图标字体-IcoMoon篇http://www.zhan ...

随机推荐

  1. Pulsar 也会重复消费?

    背景 许久没有分享 Java 相关的问题排查了,最近帮同事一起排查了一个问题: 在使用 Pulsar 消费时,发生了同一条消息反复消费的情况. 排查 当他告诉我这个现象的时候我就持怀疑态度,根据之前使 ...

  2. dotnet 6 使用 string.Create 提升字符串创建和拼接性能

    本文告诉大家,在 dotnet 6 或更高版本的 dotnet 里,如何使用 string.Create 提升字符串创建和拼接的性能,减少拼接字符串时,需要额外申请的内存,从而减少内存回收压力 本文也 ...

  3. Ls 命令执行什么功能?可以带哪些参数,有什么区别?

    ls 执行的功能:列出指定目录中的目录,以及文件 哪些参数以及区别:a 所有文件 l 详细信息,包括大小字节数,可读可写可执行的权限等

  4. 我们如何监视所有 Spring Boot 微服务?

    Spring Boot 提供监视器端点以监控各个微服务的度量.这些端点对于获取有关应用程序的信息(如它们是否已启动)以及它们的组件(如数据库等)是否正常运行很有帮助.但是,使用监视器的一个主要缺点或困 ...

  5. Mybatis Plus使用租户过滤无效解决方案

    异常内容: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.Pe ...

  6. cornerstone 忽略不必要文件

    转:https://www.jianshu.com/p/f48207baa0cd

  7. django CBV 及其装饰器

    #urls.py from django.contrib import admin from django.urls import path, re_path from app01 import vi ...

  8. 并发包中automic类的原理

    提到同步,我们一般首先想到的是lock,synchronized,但java中有一套更加轻量级的同步方式即atomic类.java的并发原子包里面提供了很多可以进行原子操作的类,比如: AtomicI ...

  9. 4.RDD操作

    目录 一. RDD创建 从本地文件系统中加载数据创建RDD 从HDFS加载数据创建RDD 通过并行集合(列表)创建RDD 二. RDD操作 转换操作 filter(func) map(func) fl ...

  10. jdk_8接口的内部内容

    目标: 如何创建已定义好的接口类型的对象呢? 步骤: 实现的概述 抽象方法的使用 默认方法的使用 静态方法的使用 接口的常量使用 讲解: 实现的概述 类与接口的关系为实现关系,即类实现接口,该类可以称 ...