移动办公
最后更新于:2022-04-02 07:24:22
# 移动办公
> 采用uni-app框架开发,能跨平台适用各种移动终端(APP、小程序、H5);一次开发,处处使用,大大降低终端开发成本。完美解决企业IT应用系统与手持终端之间的问题,可一站式满足企业应用开发和移动化应用集成所有需求。
> 实现了登录、移动首页、移动审批、移动办公等OA办公功能;
> APP端已经实现了PC端审批功能,实现了移动办公能力;
[TOC]
## 移动端效果展示

## 移动办公平台主要功能
### 1.移动门户
移动门户提供企业信息移动端统一入口,所有信息通过个性化门户实现全面、实时、高效地汇聚融合
### 2.移动审批
移动审批让组织内的所有流程审批都可以在手机端轻松完成审批工作
### 3.移动通讯录
移动通讯录不仅提供实时更新的企业员工通讯信息,同时方便在手机上快速进行实时互动
## 免费在线体验,解锁更多功能
- [安卓APP下载](https://jeecgos.oss-cn-beijing.aliyuncs.com/app/jeecgbootapp_20220225.apk)
- [在线体验H5版](http://uniapp.jeecg.com/)
- 小程序版体验

## 功能清单
```
│─移动端流程审批
│ ├─三种表单对接
│─通用功能模块
│ ├─审批
│ └─审批稿
│ └─待我审批
│ └─我发起的流程
│─常用OA移动端
│ ├─我的文档
│ └─通讯录
│ └─我的计划
│ └─新闻中心(官网)
│ └─我的邮箱
│ └─通知公告
│ └─考勤功能
│ └─聊天功能
│ └─地理定位
│ └─会议申请
│─基础功能
│ ├─登录退出功能
│ └─首页展示效果
│ └─个人中心
```
';
OA办公
最后更新于:2022-04-02 07:24:19
# OA办公
> 实现了OA办公常用模块:我的计划、我的邮箱、发文收文、会议、通讯录、聊天、考勤、我的文档、CMS官网等
[TOC]
## 我的计划

## 我的邮箱
邮箱支持写信、收件箱、发件箱、草稿箱、垃圾箱、标签等管理

## 门户展示效果
门户可设置企业门户及流程门户
* 企业门户

* 流程门户

## 我的文档
文档管理,可上传、下载、根据角色、用户、组织机构授权

## 功能清单
```
常用OA办公封装
│ └─流程门户
│ └─企业门户
│ └─我的邮箱
│ └─简易CMS
│ └─通讯录
│ └─我的计划
│ └─考勤管理
│ └─会议管理
│ └─我的文档(不提供)
│ └─在线聊天
│ └─门户配置
```
';
排版布局设计
最后更新于:2022-04-02 07:24:17
# APP首页排版设计
>[info] version`2.5+` 20210801
自定义配置移动端首页;支持首页菜单、登录页面、封面图、online表单、设计器表单以及APP相关的基础信息(***注意:修改后配置想要立即生效需要APP端退出重新登录才能实现。默认配置信息缓存十分钟***。)
[TOC]
## 1.APP基础配置
> 登录页面、logo图、轮播图
* 登录后台,点击`表单设计 > APP智能设计`,可以看到如下图页面

* 在配置信息的tab下面,可以设置app的标题、logo和首页的轮播图信息。配置完成后的app页面,如下

* **配置方式:**
填写完成标题等信息后,点击下方保存按钮即可;
## 2.首页菜单配置
> 首页菜单图标、路由、online表单、设计器表单
### 2.1字段介绍
见下图:

### 2.2新增
点击图中的+号,右侧会切换到菜单配置tab,输入基本信息后,点击保存即可新增。

>[info]具体路由配置参见下方【2.5路由配置】
### 2.3路由配置
**方式一:手动输入路由名称。具体路由名称的获取方式如下:**
APP端配置路由:
1:在page.json文件中配置好页面路径

2: 在router下的routes文件下配置路由地址和名称

3: 将路由name配置到下图位置即可

**方式二:点击输入栏内后侧的操作按钮,弹出选择框,选择你要的表单即可**

Tab1对应的是你创建的online表单
Tab2对应的是你创建的设计器表单
>[info]注意点:
online对接的路由配置格式:**/app/online/表名**
表单设计器对接的路由配置格式:**/app/desform/表单编码**
普通的路由配置的格式: ***APP端设置的路由名称***
### 2.4是否开启
新增模块的状态默认是开启的,若果关闭后,左侧的菜单模块会置灰,在app端的页面上则不会显示该模块

### 2.5拖拽排版
拖动具体的服务模块,可以将它放到任意位置,来修改排版和布局,拖动完成后,点击下方**保存排版**按钮即可
**切记:拖拽排序完后一定要点击保存排版按钮**

## 3.首页布局如何切换
通过设置根目录下App.vue 页面配置的参数 isLocalConfig
默认为true,表示通过前端配置的数据来构建首页。
改为false,通过后台智能设计的数据来加载首页。

';
低代码应用
最后更新于:2022-04-02 07:24:15
# 低代码应用
> 在线创建应用系统,实现应用功能的在线开发
> 支持应用创建、菜单维护、分组管理、回收站、应用图标维护等功能,目前此功能还处于初级阶段,尚不支持流程等高级功能。
[TOC]
## 进入应用详情
在应用首页上,点击任意应用的图标,即可进入应用的详情页面

下图是应用详情页面

## 创建应用功能
注:应用里的表单等配置项都是隔离的,你只能管理在当前应用内创建的表单等配置项。
当成功在应用内创建了功能之后,会自动生成同名的菜单,点击菜单即可进入到功能详情页面。
### 创建Online表单
进入`Online表单`菜单,点击新增即可,具体配置详见 [Online表单配置](../Online开发/Online表单配置.md) 章节

### 创建设计器表单
进入`设计器表单`菜单,点击新增即可,具体配置详见 表单设计器 章节

### 创建Online图表
进入`Online图表`菜单,点击新增即可,具体配置详见 Online图表 章节

### 创建Online报表
进入`Online报表`菜单,点击录入即可,具体配置详见 [Online报表](../Online开发/Online报表/online报表-使用步骤.md) 章节

## 回收站功能
用户删除的菜单、分组不会直接删除,而是会放到回收站里(没有过期时间),用户可以在回收站进行永久删除或还原的操作。

### 还原应用
> 还原后的菜单、分组,其排序顺序会降低到最后

### 彻底删除
>[warning] 彻底删除后不可恢复,请谨慎操作

';
Online图表
最后更新于:2022-04-02 07:24:12
# Online图表配置
> 无需编码,通过在线配置方式,实现曲线图,柱状图,折线图,数据等报表,支持自定义排版布局,实现人人皆可编码。
[TOC]
## 一、配置单个数据源的图表
### 具体步骤
1. 在页面中点击 `新增` 按钮
2. 在打开的弹窗中输入你的图表信息。其中,必填项有:
- 图表名称
- 编码(编码是唯一的)
- X轴字段(数据源中被当做 X 轴的字段)
- Y轴字段(数据源中被当做 Y 轴的字段)
- 查询SQL/数据JSON
3. 其中有几个动态的内容区域,分别是:
- 当 `数据类型` 字段选为 `JSON` 后,`查询SQL` 字段会被替换成 `数据JSON` 字段,该字段会验证你的JSON字符串格式是否正确,反之则不变;当切换到`API`后,`查询SQL` 字段会被替换成 `API接口` 字段;
4. 配置列表字段
5. 点击右下角的`确定`按钮完成添加操作
### 使用方法
- 在 `操作` 列中,选中 `更多`,点击 `功能测试` 可以查看你配置的效果。
- 效果会根据不同的 `展示模板` 显示不同的布局
### 配置示例:JSON数据格式
假如我有一段JSON,我要将它配置成和下图一样图表,那么需要怎么做呢?

#### 第一步:准备好你需要的JSON
```json
[
{"day": "星期一", "step": 1234, "assess": "良"},
{"day": "星期二", "step": 1884, "assess": "优"},
{"day": "星期三", "step": 1671, "assess": "良+"},
{"day": "星期四", "step": 2197, "assess": "优+"},
{"day": "星期五", "step": 1342, "assess": "中"},
{"day": "星期六", "step": 545, "assess": "差"},
{"day": "星期日", "step": 244, "assess": "极差"}
]
```
#### 第二步:填写JSON
点击“新增”按钮,填写一些基本信息,然后将 `数据类型` 改为 `JSON`,然后将JSON填入`数据JSON`字段中,如下图

#### 第三步:配置数据字段
数据字段即`X轴字段`、`Y轴字段`和`Y轴文字`。
`X轴字段` 顾名思义,就是需要在X轴显示的字段,根据上图示例图表中我们可以发现,X轴方向显示的是星期一到星期日,而在准备的json中,`day`字段是存储星期信息的,所以我们要将 `X轴字段`处填写成`day`。
`Y轴字段` 也是如此,即对应需要在Y轴上显示的字段,这里我们填写上 `step`
`Y轴文字` 是对Y轴数据的一个解释。这里我们填上`步数`,那么就会在鼠标悬浮在图表上时直观的显示出来,如下图所示。

### 第四步:配置数据表格的列
在`列表字段`下面的表格中配置,配置示例如下

这里的配置是配置数据表格的列信息,只有配置上去的字段才会被显示出来。
数据表格可以计算列的总数,当`计算总计`被勾选上之后,会在数据表格最下面显示一行“总计”,当所有的`计算总计`都没被勾选的话,那么就不会显示这一行,如果要计算总计的列中某一行包含非数字的值,那么将会计算失败,并显示错误信息(包含非数字内容)
### 第五步:提交并测试功能
点击右下角的`确定`按钮并成功保存之后,我们可以在新增加的数据行右侧点击`更多 --> 功能测试`

最终显示效果如下:

我们发现只有一个柱状图,而刚刚配置的数据表格并没有显示出来,这是因为`图表类型`只配置了一个柱状图。我们回到列表页面,点击编辑按钮,在`图表类型`处勾选`数据列表`,如下图所示

点击`确定`保存,再点击功能测试,最终显示效果如下:

至此,配置JSON数据格式的图表就已经完成了
### 配置SQL数据格式
配置SQL数据格式的图表与JSON的步骤类似,只是需要将`数据类型` 改为 `SQL`即可,在`查询SQL`处填写上你的SQL语句,填写好`X轴字段`、`Y轴字段`和`Y轴文字`点击`确定`保存即可
### 配置API数据格式
配置API数据格式的图表与JSON的步骤类似,只是需要将`数据类型` 改为 `API`即可,在`API接口`处填写上你的api路径,填写好`X轴字段`、`Y轴字段`和`Y轴文字`点击`确定`保存即可。
api接口例子:http://api.jeecg.com/mock/83/graphreport/apitest
接口返回的数据结构:
~~~
{"data":[
{"sex":0,"cnt":10},
{"sex":1,"cnt":1},
{"sex":2,"cnt":4}
]}
~~~
*注:数据最外层用data包裹*
';
大屏设计器
最后更新于:2022-04-02 07:24:10
# 大屏介绍
> 可视化数据大屏是一站式数据可视化展示平台,旨在帮助用户快速通过可视化图表展示海量数据,10 分钟零门槛打造出专业大屏数据展示。
精心预设多种行业模板,极致展示数据魅力。采用拖拽式自由布局,无需编码,全图形化编辑,快速可视化制作。
大屏设计器支持多种数据来源配置,支持数据实时同步更新,同时大屏设计器基于 WEB 页面渲染,可灵活投屏多种屏幕终端。
大屏在线体验: [www.jimureport.com](http://www.jimureport.com)
[TOC]
## 创建一个大屏
在个人中心,点击`“新建 ->新建大屏”`,就可以新建一个空白大屏,如图2.11;
~~~
备注:
1、默认新建的大屏在其他库,如果没有选择其他分类,设计好的大屏,去“其他库”分类下查看;(如图2.11)
2、新建的时候,最好设置密码,防止误删或他人修改;
~~~

图2.11
## **2.复制模版**
如果觉的模版中有符合自己设计的内容,可以点击“去使用”按钮,就可以复制一个跟模版一模一样的报表,如图2.21;

';
工作流引擎
最后更新于:2022-04-02 07:24:08
# 中国式流程引擎
> 遵循BPMN2.0国际标准,具有更稳定、更健壮的工作流性能。
基于activiti进行中国流程特色扩展,更符合国内流程需求;自主研发在线流程设计器,实现在线画流程;自主研发在线表单设计器,实现在线设计表单(在线配置表单),表单挂接,业务流转,流程监控,流程跟踪,流程委托、抄送功能、代理,超时提醒、并行会签、串行会签等
## 功能清单
```
│─流程模块功能
│ ├─流程设计器
│ └─我的任务
│ └─历史任务
│ └─历史流程
│ └─流程实例管理
│ └─流程监听管理
│ └─流程表达式
│ └─我发起的流程
│ └─我的抄送
│ └─流程挂起、委派、抄送、驳回、跳转、关闭、取回
│ └─流程与表单关联(松耦合设计)
│ └─表单支持发起多次流程
│ └─流程催办
│ └─表单提醒
│ └─等等
```
## 中国国情设计
> - 1.支持任意节点驳回,支持驳回发起人、驳回上一步骤、驳回指定环节,驳回后支持回到驳回节点、按流程图执行等策略。
> - 2.任意跳转,支持在流程的任意环节自由跳转
> - 3.支持业务规则设置,通过规则自动判断流程是否要跳转到指定环节。
> - 4.任意委派,流程处理中将任务转发给其他人处理、或者对自己审批的任务进行追回,或者设置代理规则,实现流程代理
> - 5.流程实例抄送给他人,或者发送知会消息给相关干系人
# Online表单与流程对接示例
>[info] online表单对接流程,进行表单流程审批
## 对接步骤:
### 一.online表单对接前提条件
表单增加`bpm_status`字段,
字段设置:
(1)string类型
(2)默认值为1
(3)表单不显示,列表显示
(4)字典code设值`bpm_status`

### 二.流程与online表单进行挂接
【流程设计-流程配置-业务关联】进行业务配置



表单类型:选择Online表单,
表名:填写对接的Online表单表名
唯一编码:自动生成,不能修改
流程状态列表:默认值`bpm_status`,不能修改
标题表达式:通过表达式`${}`获取流程变量的值,组成一个标题
### 三.业务对接完成
1. 发布流程
2. online表单-功能测试,进入表单维护页面,点击“提交流程”按钮,提交流程

3. 提交流程后,通过任务节点指定的办理人账号,登陆系统,在【个人办公-我的任务-我的任务】中办理任务

## 学习路径
从基础操作看起,慢慢再去学习高级操作。
更多资料 `设计器表单与流程对接` `编码表单与流程对接`
';
流程设计器
最后更新于:2022-04-02 07:24:05
# 一个简单的流程设计!!
> 流程设计器,实现了在线画流程和配置、支持在浏览器上通过可视化、拖拽式设计,无需开发也能完成流程、表单的全生命周期管理。
>极大的降低了流程、表单的实施门槛,让业务人员也能轻松的设计和发布流程。
> 支持多种表单对接方式,并支持节点权限设置,实现表单字段及操作按钮的详实权限控制。
[TOC]
## 1. 新建流程
进入菜单【流程设计-流程设计】 点击:新建流程,进入设计器页面**
- 设计器默认生成开始节点


## 2. 流程配置
填写流程信息,设计器右侧,流程属性面板,填写信息**
- 流程类型:选择流程的类型,该字段是流程的业务分类,该字段的值可在【系统管理-数据字典】中进行维护,字典code为“bpm_process_type”
- 流程key:流程的定义key,可自定义,也可使用默认生成的值,该值唯一不能重复
- 流程名称:定义流程名称
- 描述:填写流程描述信息

## 3. 流程设计
设计器区设计,选择用户任务 拖拽到设计器区间,即可增加流程节点**
* 引导选择(推荐)
选中节点,直接点击右侧所需要的节点类型

* 点击或拖拽选择

* 点击节点,进行任务相关信息编辑

* 审核者:(选择任务办理人员)
用户类型:类型包括指定人、候选人员、候选角色三种类型
1)指定人,只可分配一个具体的人
2)候选人员,可分配给多个人(选中人员都可以看到该任务,其中一人【签收】后,其他人任务在列表中消失)
3)候选角色,分配给一个或者多个角色((所属角色的人员都可以看到该任务,其中一人【签收】后,其他人任务在列表中消失))
如下图: 1为选择人员或角色,2为选择表达式

## 4. 保存、发布流程
节点添加完成后,点击保存,保存流程**

**流程设计完成,可点击【发布】进行发布流程!!!**
';
表单设计器
最后更新于:2022-04-02 07:24:03
# 表单设计器介绍
> 表单设计器是一款可以“所见即得”式的设计表单的工具。操作很简单,只需要将你需要的**组件拖动到页面中**即可。
不需要任何的专业知识,只需要轻点鼠标,拖动组件,像搭积木一样,轻松完成表单的创建,一分钟开始数据收集的工作。
支持与业务数据绑定,轻松实现设计表单与库表对接,并保持数据同步。
支持海量大数据搜索,集成强大的高性能的搜索引擎Elasticsearch。
支持在线编写脚步,JS增强,CSS增强实现更复杂的业务场景。
[TOC]
我们支持很多组件,其他所需组件可自行扩展,具体如下所示:

## 1.基本使用
如下图所示,只需要将你需要的**组件拖动到页面中**即可。

## 2.移动表单设计
在`“表单属性”`中打开`“设计移动视图”`开关,就可以看到下图的效果,该视图可以让你在设计移动端表单的时候拥有 **所见即得** 的体验。

## 3.学习路径
建议先从基础操作看起,慢慢再去学习高级操作。
';
更多功能介绍
最后更新于:2022-04-02 07:24:01
[表单设计器](%E8%A1%A8%E5%8D%95%E8%AE%BE%E8%AE%A1%E5%99%A8.md)
[流程设计器](%E6%B5%81%E7%A8%8B%E8%AE%BE%E8%AE%A1%E5%99%A8.md)
[工作流引擎](%E5%B7%A5%E4%BD%9C%E6%B5%81%E5%BC%95%E6%93%8E.md)
[大屏设计器](%E5%A4%A7%E5%B1%8F%E8%AE%BE%E8%AE%A1%E5%99%A8.md)
[Online图表](Online%E5%9B%BE%E8%A1%A8.md)
[低代码应用](%E4%BD%8E%E4%BB%A3%E7%A0%81%E5%BA%94%E7%94%A8.md)
[排版布局设计](%E6%8E%92%E7%89%88%E5%B8%83%E5%B1%80%E8%AE%BE%E8%AE%A1.md)
[OA办公](OA%E5%8A%9E%E5%85%AC.md)
[移动办公](%E7%A7%BB%E5%8A%A8%E5%8A%9E%E5%85%AC.md)
';
代码质量扫描
最后更新于:2022-04-02 07:23:59
# 阿里p3c-pmd 代码规范插件插件
- 1. 通过右上角Maven插件进行代码规范扫码

- 2. 查看扫出的问题


';
代码格式化插件安装
最后更新于:2022-04-02 07:23:56
### 安装Eclipse Code Formatter插件(在线安装方式)

### 导入代码格式化模板文件

格式化模板下载
链接:https://pan.baidu.com/s/1QvMhHyC01qfO-yuS2xJMxw
提取码:8888
### 安装代码检查插件 alibaba-java-coding-guidelines

';
建表规范
最后更新于:2022-04-02 07:23:54
建表规范
===
[TOC]
## 表设计规范
* 1.主键必须为:ID,类型 [Long(19)] 唯一索引,因为历史原因暂时用String(32)类型
* 2.外键字段命名:{【关联表名】去掉业务前缀}+“_”+ {关联字段名},例如:order_main_id
* 3.区分位: iz_* [String(1)] 1表示是 0表示否,(禁用 is_,代码生成实体有问题 )
* 4.状态位: *_status [String(1-2)] 状态字段必须加注释说明每个值代表含义
* 5.字段命名,多单词采用下划线分隔 例如:school_id
* 6.索引命名: 主键索引命名为:pk_表名缩写_字段名(索引要求全库唯一,为兼容多数据库);
唯一索引命名为:`uniq_表名缩写_字段名` 或 `uk_表名缩写_字段名`;
普通索引命令为: `idx_表名缩写_字段名`(表名缩写: 下划线分隔单词首字母组合)
* 7.区分、状态、类型字段,尽量用String类型,避免数字类型的一些问题;如果需要考虑性能建议用int类型
(禁用tinyint类型,需要兼容其他数据库);
* 8.字段默认值(字段尽量不设置默认值,采用编码方式加默认值) `因为在转库的过程中,不同数据库会有丢失默认值的情况`
## 表业务前缀 和 建表标准字段
* 1.表命名必须带上业务前缀:例如 sys_开头(系统表前缀)
* 2.所有的表加字段:所属部门,用于部门数据权限
* 3.所有的表加字段:创建时间,创建者,最后更新时间,更新人
* 4.逻辑删除字段,del_flag [int(1)],1表示删除 0表示未删除 ,可选择加
* 5.乐观锁字段, update_count[Integer],可选择加
* 6.字符串类型字段,varchar类型长度不允许超过1000(过长转库会变类型)
* 7.大文本尽量少用,字段类型采用text、longtext,禁用blob系列类型(必须用要确认)
## 帮助脚步
```
ALTER TABLE `表名`
ADD COLUMN `create_by` varchar(32) NULL COMMENT '创建人',
ADD COLUMN `create_time` datetime NULL COMMENT '创建时间' AFTER `create_by`,
ADD COLUMN `update_by` varchar(32) NULL COMMENT '修改人' AFTER `create_time`,
ADD COLUMN `update_time` datetime NULL COMMENT '修改时间' AFTER `update_by`,
ADD COLUMN `del_flag` int(1) NULL COMMENT '0表示未删除,1表示删除' AFTER `update_time`;
```
其他说明:
- 表字段注释,每个字段必须设置注释说明;
- 表字段注释,状态类型的字段必须说明取值规则(比如性别sex取值规则)
比如:'性别 0男,1女'
- 索引,查询频率高的字段加索引(单字段索引 、组合索引、唯一索引);
- 状态、类型字段,尽量用字符串varchar类型1-2长度,少用int类型,避免不必要的问题。
';
代码规范
最后更新于:2022-04-02 07:23:52
* 1、SVN代码提交和修改规范
~~~
jeecg-boot-module-system/docs/规范/编码必看规范
~~~
* 2、代码注释规范
~~~
类注释、方法名\参数注释 、实体字段注释 (合理的代码结构、分层、命名、注释)
参考: https://my.oschina.net/jeecg/blog/3198358
~~~
* 3、代码格式化说明
~~~
新增代码必须格式化,老代码禁止格式化
~~~
* 4、Review规范
review问题,及时记比较以免忘记(有道云、图文并茂)
* 5、代码规范扫描
~~~
1、不允许代码里面写变量值,需要使用常量定义(统一变量文件或者一个模块一个常量文件)
2、复杂代码逻辑,要增加步骤说明
3、类命名、参数、字段命名要明确,可以百度翻译驼峰缩写
代码扫描检查插件安装: pc3
jeecg-boot-module-system/docs/规范/阿里巴巴Java开发手册(详尽版).pdf
https://www.cnblogs.com/han-1034683568/p/7682594.html
~~~
- [阿里巴巴Java开发手册(精简实用)](http://note.youdao.com/noteshare?id=def9bd9e0b9e24cd915ae79d95563dec&sub=035C77E18A564E1DBCE93F04514F0CDF)
- [阿里巴巴Java开发手册 下载](https://gitee.com/jeecg/jeecg-boot/attach_files)
* 6、TODO 规范,记录缺陷点(及时纠正)
```
代码有缺陷或者未完善的地方,加TODO标记(前端、后端都适用)
```
* 7、建表规范
~~~
jeecg-boot-module-system/docs/规范/设计样板/JEECG-开发说明书-XX模块-建表规范v1.0.xlsx
~~~
* 8、开源issue处理
```
回复issue具体修复问题方法 或 回复下个版本修复
```
';
编码规范
最后更新于:2022-04-02 07:23:49
[代码规范](%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83.md)
[建表规范](%E5%BB%BA%E8%A1%A8%E8%A7%84%E8%8C%83.md)
[代码格式化插件安装](%E4%BB%A3%E7%A0%81%E6%A0%BC%E5%BC%8F%E5%8C%96%E6%8F%92%E4%BB%B6%E5%AE%89%E8%A3%85.md)
[代码质量扫描](%E4%BB%A3%E7%A0%81%E8%B4%A8%E9%87%8F%E6%89%AB%E6%8F%8F.md)
';
大数据量导出示例
最后更新于:2022-04-02 07:23:47
**数据量大超过5W,还在100W以内的数据导出处理**
>[info] 1.3.8+ 支持
[TOC]
## 方法介绍
1.注解方式
~~~
ExcelExportUtil.exportBigExcel(ExportParams entity, Class> pojoClass,IExcelExportServer server, Object queryParams)
~~~
2.自定义方式
~~~
ExcelExportUtil.exportBigExcel(ExportParams entity, List excelParams,IExcelExportServer server, Object queryParams)
~~~
## 传参介绍
| 参数 | 含义|
|------|------|
| ExportParams entity | 导出参数属性,例如表格标题、名称等等 |
| Class> pojoClass | Excel对象Class(注解方式) |
| List excelParams | 导出工具类集合,对cell做处理(自定义) |
| IExcelExportServer server | 查询数据的接口 |
|Object queryParams | 查询数据的参数 |
## 使用示例(注解)
~~~
import org.apache.poi.ss.usermodel.Workbook;
import org.jeecgframework.poi.excel.ExcelExportUtil;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.handler.inter.IExcelExportServer;
import org.junit.Test;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class ExcelExportBigData {
@Test
public void bigDataExport() throws Exception {
Workbook workbook = null;
Date start = new Date();
//设置表格标题
ExportParams params = new ExportParams("大数据测试","测试");
/**
* params:(表格标题属性)筛选条件,sheet值
* TestEntity:表格的实体类
* IExcelExportServer:查询数据接口
*/
workbook = ExcelExportUtil.exportBigExcel(params, TestEntity.class, new IExcelExportServer() {
/**
* obj 就是下面的10,限制条件
* page 是页数,他是在分页进行文件转换,page每次+1
*/
@Override
public List
';
大数据量处理
最后更新于:2022-04-02 07:23:45
**大数据量的导入可以使用sax的方式:**
>[info] 1.3.8+ 支持
ExcelImportUtil.importExcelBySax(InputStream inputstream, Class> pojoClass, ImportParams params)
##
什么场景该用哪个方法
~~~
- 导出
1.正规excel导出 (格式简单,数据量可以,5W以内吧)
注解方式: ExcelExportUtil.exportExcel(ExportParams entity, Class> pojoClass,Collection> dataSet)
2.不定多少列,但是格式依然简单数据库不大
自定义方式: ExcelExportUtil.exportExcel(ExportParams entity, List entityList,Collection> dataSet)
3.数据量大超过5W,还在100W以内
注解方式 ExcelExportUtil.exportBigExcel(ExportParams entity, Class> pojoClass,IExcelExportServer server, Object queryParams)
自定义方式: ExcelExportUtil.exportBigExcel(ExportParams entity, List excelParams,IExcelExportServer server, Object queryParams)
4.样式复杂,数据量尽量别大
模板导出 ExcelExportUtil.exportExcel(TemplateExportParams params, Map map)
5.一次导出多个风格不一致的sheet
模板导出 ExcelExportUtil.exportExcel(Map> map,TemplateExportParams params)
6.一个模板但是要导出非常多份
模板导出 ExcelExportUtil.exportExcelClone(Map>> map,TemplateExportParams params)
7.模板无法满足你的自定义,试试html
自己构造html,然后我给你转成excel ExcelXorHtmlUtil.htmlToExcel(String html, ExcelType type)
8.数据量过百万级了.放弃excel吧,csv导出
注解方式: CsvExportUtil.exportCsv(CsvExportParams params, Class> pojoClass, OutputStream outputStream)
自定义方式: CsvExportUtil.exportCsv(CsvExportParams params, List entityList, OutputStream outputStream)
9.word导出
模板导出: WordExportUtil.exportWord07(String url, Map map)
- 导入
如果想提高性能 ImportParams 的concurrentTask 可以帮助并发导入,仅单行,最小1000
excel有单个的那种特殊读取,readSingleCell 参数可以支持
1. 不需要检验,数据量不大(5W以内)
注解或者MAP: ExcelImportUtil.importExcel(File file, Class> pojoClass, ImportParams params)
2. 需要导入,数据量不大
注解或者MAP: ExcelImportUtil.importExcelMore(InputStream inputstream, Class> pojoClass, ImportParams params)
3. 数据量大了,或者你有特别多的导入操作,内存比较少,仅支持单行
SAX方式 ExcelImportUtil.importExcelBySax(InputStream inputstream, Class> pojoClass, ImportParams params, IReadHandler handler)
4. 数据量超过EXCEL限制,CSV读取
小数据量: CsvImportUtil.importCsv(InputStream inputstream, Class> pojoClass,CsvImportParams params)
大数据量: CsvImportUtil.importCsv(InputStream inputstream, Class> pojoClass,CsvImportParams params, IReadHandler readHandler)
~~~
';
autopoi升级到4.0版本修改记录
最后更新于:2022-04-02 07:23:43
**1.样式相关**
###### 图案颜色和样式设置:
```
其他颜色修改类似
HSSFColor.WHITE.index =》 IndexedColors.WHITE.index;
HSSFColor.SKY_BLUE.index =》 IndexedColors.SKY_BLUE.index;
图案样式:
CellStyle.SOLID_FOREGROUND =》 FillPatternType.SOLID_FOREGROUND
```
###### 对齐设置:
```
CellStyle.ALIGN_CENTER (垂直居中) ==》 HorizontalAlignment.CENTER
CellStyle.VERTICAL_CENTER(左右居中) ==》 VerticalAlignment.CENTER
CellStyle.ALIGN_RIGHT =》 HorizontalAlignment.RIGHT
类似的偏左以及偏右 替换成对应的LEFT 或者 RIGHT
```
###### 边框线设定:
```
原有的单线最细边框设置
cellStyle.setBorderTop((short) 1 ) =》修改后cellStyle.setBorderTop(BorderStyle.THIN);//上边框
(short) 1 =》 BorderStyle.THIN
至于其他边框粗细,参考BorderStyle 里面的相关介绍
```
###### 粗细设置:
```
font.getBoldweight() =》font.getBold()
font.setBoldweight(Font.BOLDWEIGHT_BOLD); =》 font.setBold(true);
```
**2.数据类型**
```
Cell.CELL_TYPE_STRING =》 CellType.STRING
Cell.CELL_TYPE_NUMERIC =》 CellType.NUMERIC
Cell.CELL_TYPE_BOOLEAN =》 CellType.BOOLEAN
Cell.CELL_TYPE_FORMULA =》 CellType.FORMULA
Cell.CELL_TYPE_NUMERIC =》 CellType.NUMERIC
```
如有小伙伴也遇到了相同的问题,并修改了其他相关的地方,可以联系小弟一起学习探讨
';
单表数据导出多sheet实例
最后更新于:2022-04-02 07:23:40
现在要导出格式如下:

实体如下:
~~~
public class TestEntity{
@Excel(name = "姓名", width = 15)
private String username;
@Excel(name = "年龄", width = 15)
private int age;
.....省略后续getset
~~~
---------
数据格式如下:
~~~
//多个map,对应了多个sheet
List
';
一对多导出needMerge
最后更新于:2022-04-02 07:23:38
### 一对多导出needMerge注解的使用
1)注意事项:需要一对多的时候才可以正确导出纵向合并单元格(如一个教师对应多个学生)
2)后台代码实现示例
教师实体类
```
/**needMerge需要写在@Excel里面,并且是一对多的情况下,否则合并失败*/
/**教师名称*/
@Excel(name = "教师名称", width = 15,needMerge = true)
@ApiModelProperty(value = "教师名称")
private String name;
@ExcelCollection(name="学生")
@ApiModelProperty(value = "学生")
private List studentList;
```

学生实体类
```
/**主键*/
@TableId(type = IdType.ID_WORKER_STR)
@ApiModelProperty(value = "主键")
private String id;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**姓名*/
@Excel(name = "姓名", width = 15)
@ApiModelProperty(value = "姓名")
private String name;
/**年龄*/
@Excel(name = "年龄", width = 15)
@ApiModelProperty(value = "年龄")
private String age;
/**性別*/
@Excel(name = "性別", width = 15)
@ApiModelProperty(value = "性別")
private String sex;
/**教师id*/
@ApiModelProperty(value = "教师id")
private String teacherId;
```
controller控制类


导出excel截图

';