ggg444 cce92983fd 优化Excel导出计算sheet数目的方式
1. 导出数据的总条数刚好等于sheet最大行数时,会多产生一个空白sheet
测试代码如下:
    public static void main(String[] args) {
        System.out.println("无数据时,1页:" + getTotalPage(sheetSize * 0));
        System.out.println("刚好1页:" + getTotalPage(sheetSize * 1));
        System.out.println("刚好7页:" + getTotalPage(sheetSize * 7));
        System.out.println("1页:" + getTotalPage(200));
        System.out.println("2页:" + getTotalPage(sheetSize * 1 + 200));
        System.out.println("8页:" + getTotalPage(sheetSize * 7 + 200));
        System.out.println("=========");
        System.out.println("无数据时,1页:" + getTotalPage2(sheetSize * 0));
        System.out.println("刚好1页:" + getTotalPage2(sheetSize * 1));
        System.out.println("刚好7页:" + getTotalPage2(sheetSize * 7));
        System.out.println("1页:" + getTotalPage2(200));
        System.out.println("2页:" + getTotalPage2(sheetSize * 1 + 200));
        System.out.println("8页:" + getTotalPage2(sheetSize * 7 + 200));
    }

    private static double getTotalPage(int size) {
        //原方法。
        //ceil方法中是两个int做除法,结果还是int。ceil实际上没有起到作用。
        return Math.ceil(size / sheetSize);
    }

    private static int getTotalPage2(int size) {
        //修改后的方法。
        //size * 1.0 使int转为double,做除法后还是double。max(1, ...)是为了在size为0时,始终能生成一个sheet。
        //需要修改for循环的判断条件
        return Math.max(1, (int)Math.ceil(size * 1.0 / sheetSize));
    }
测试结果:
    //预期结果:0,0,6,0,1,7
    无数据时,1页:0.0
    刚好1页:1.0
    刚好7页:7.0
    1页:0.0
    2页:1.0
    8页:7.0
    =========
    //预期结果:1,1,7,1,2,8
    无数据时,1页:1
    刚好1页:1
    刚好7页:7
    1页:1
    2页:2
    8页:8

2. 有疑问的地方(本次提交没有做修改):
    1105行 index是从0开始的,即sheet的后缀名也是从0开始的。如果要使后缀名从1开始,可以考虑 (index + 1)
2021-09-15 08:27:45 +00:00
2021-08-11 10:11:13 +08:00
2020-07-19 10:25:40 +08:00
2021-09-13 09:36:38 +08:00
2021-09-13 09:36:38 +08:00
2021-09-13 09:36:38 +08:00
2021-09-13 09:36:38 +08:00
2021-09-13 09:36:38 +08:00
2021-09-13 09:36:38 +08:00
2021-09-08 09:28:23 +08:00
2019-10-08 09:14:38 +08:00
2021-09-13 09:36:38 +08:00
2021-08-08 19:50:50 +08:00
2021-05-31 12:16:27 +08:00
2021-06-17 21:29:00 +08:00

平台简介

若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。

  • 前端采用Vue、Element UI。
  • 后端采用Spring Boot、Spring Security、Redis & Jwt。
  • 权限认证使用Jwt支持多终端认证系统。
  • 支持加载动态权限菜单,多方式轻松权限控制。
  • 高效率开发,使用代码生成器可以一键生成前后端代码。
  • 提供了单应用版本RuoYi-Vue-fastOracle版本RuoYi-Vue-Oracle,保持同步更新。
  • 不分离版本,请移步RuoYi,微服务版本,请移步RuoYi-Cloud
  • 特别鸣谢:elementvue-element-admineladmin-web
  • 阿里云折扣场:点我进入,腾讯云秒杀场:点我进入  
  • 阿里云优惠券:点我领取,腾讯云优惠券:点我领取  

内置功能

  1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
  3. 岗位管理:配置系统用户所属担任职务。
  4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
  5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  7. 参数管理:对系统动态配置常用参数。
  8. 通知公告:系统通知公告信息发布维护。
  9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  10. 登录日志:系统登录日志记录查询包含登录异常。
  11. 在线用户:当前系统中活跃用户状态监控。
  12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
  13. 代码生成前后端代码的生成java、html、xml、sql支持CRUD下载 。
  14. 系统接口根据业务代码自动生成相关的api接口文档。
  15. 服务监控监视当前系统CPU、内存、磁盘、堆栈等相关信息。
  16. 缓存监控:对系统的缓存信息查询,命令统计等。
  17. 在线构建器拖动表单元素生成相应的HTML代码。
  18. 连接池监视监视当前系统数据库连接池状态可进行分析SQL找出系统性能瓶颈。

在线体验

  • admin/admin123
  • 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。

演示地址:http://vue.ruoyi.vip
文档地址:http://doc.ruoyi.vip

演示图

若依前后端分离交流群

QQ群 加入QQ群 加入QQ群 加入QQ群 加入QQ群 加入QQ群 加入QQ群 加入QQ群 点击按钮入群。

Description
No description provided
Readme 295 MiB
Languages
Java 55.7%
Vue 32.6%
JavaScript 8.6%
HTML 1.7%
SCSS 1.1%
Other 0.2%