{"id":19794608,"url":"https://github.com/threadnew/quickpoi","last_synced_at":"2025-02-28T10:18:50.947Z","repository":{"id":229942945,"uuid":"267529515","full_name":"ThreadNew/QuickPoi","owner":"ThreadNew","description":"基于注解版的excel导出","archived":false,"fork":false,"pushed_at":"2022-06-29T18:09:51.000Z","size":50,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-11T04:44:15.041Z","etag":null,"topics":["annotation","java","poi","reflect"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ThreadNew.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-05-28T08:00:57.000Z","updated_at":"2020-06-03T12:40:09.000Z","dependencies_parsed_at":"2024-03-27T03:42:58.888Z","dependency_job_id":null,"html_url":"https://github.com/ThreadNew/QuickPoi","commit_stats":null,"previous_names":["threadnew/quickpoi"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThreadNew%2FQuickPoi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThreadNew%2FQuickPoi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThreadNew%2FQuickPoi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThreadNew%2FQuickPoi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThreadNew","download_url":"https://codeload.github.com/ThreadNew/QuickPoi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241136849,"owners_count":19916000,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["annotation","java","poi","reflect"],"created_at":"2024-11-12T07:13:41.425Z","updated_at":"2025-02-28T10:18:50.925Z","avatar_url":"https://github.com/ThreadNew.png","language":"Java","readme":"## QuickPoi    \n### 简介\n\u003equickpoi旨在简化项目中excel的导出，利用注解即可完成excel的导出   \n### 使用 \n##### 1、在pojo中添加注解\n```java\npublic class UserInfo {\n    @ExcelRow(title = \"姓名\",cellType = CellType.TextType,cellNum = 0,remove = true,rmvGroup = {1,2,3})\n    private String name;\n    @ExcelRow(title = \"年龄\",cellType = CellType.TextType,cellNum = 1)\n    private int age;\n    @ExcelRow(title = \"地址\",cellType = CellType.TextType,cellNum = 2)\n    private String address;\n    @ExcelRow(title = \"日期\",cellType = CellType.DateType,cellNum = 4,dateFormat = \"yyyy-MM-dd\",remove = true,rmvGroup = {1})\n    private Date datetime;\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public int getAge() {\n        return age;\n    }\n\n    public void setAge(int age) {\n        this.age = age;\n    }\n\n    public String getAddress() {\n        return address;\n    }\n\n    public void setAddress(String address) {\n        this.address = address;\n    }\n\n    public Date getDatetime() {\n        return datetime;\n    }\n\n    public void setDatetime(Date datetime) {\n        this.datetime = datetime;\n    }\n}\n\n```  \n\n##### 2.在需要的导出excel的方法中添加如下代码：\n```java\n        //1.申明需要使用哪种类型来导出excel 这里就是使用的POI中的 SXSSF\n        SXSSFExcel sxssfExcel = ExcelType.sxssfExcelInstance();\n        //设置保存在内存中的行数，超过就刷新到磁盘中\n        sxssfExcel.setRowAccessWindowSize(100);\n        //2 new一个excel导出工厂对象\n        ExcelExportFactory excelExportFactory=new ExcelExportFactory();\n        //设置类型\n        excelExportFactory.setExcelExport(sxssfExcel);\n        //设置输出流\n        excelExportFactory.setOut(out);\n        //设置注解所在的类\n        excelExportFactory.setTarget(UserInfo.class);\n        //设置excel中的标题\n        excelExportFactory.setTitle(\"ceshi\");\n          int[] a={1};\n        excelExportFactory.setRemove(true,a);//是否过滤某列\n        //从数据库中查找的所要导出的数据集合\n        excelExportFactory.setResult(list);\n        //导出\n        excelExportFactory.ExcelExport();\n```    \n### 讲解\n- excelExportFactory.setRemove(true,a);主要作用：当一个pojo被复用时原来上面已经有了@ExcelRow注解；但实际这次要导出的excel要去掉某列属性，为了不影响先前的操作，所有引用了  @ExcelRow(title = \"姓名\",cellType = CellType.TextType,cellNum = 0,remove = true,rmvGroup = {1,2,3})中的remove和rmvGroup。\n- remove：设置false时不去除，true时剔除该列\n- rmvGroup的作用就是分组，当pojo被多次复用时肯定需要展示的列也会不同，所以为了解决这个问题，就为各种情况分组，根据情况剔除自己指定的组。\n### 总结  \n-  此项目目前只完成了注解版的导出，目前只写了SXSSF类型的导出，剩余的后面会陆续添加\n- 此项目也可以供初学者借鉴使用\n- 目前项目的框架设计不是很好，毕竟能力有限，其中有几点可以借鉴：注解的数据结构的设计，缓存的设置，枚举的使用\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthreadnew%2Fquickpoi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthreadnew%2Fquickpoi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthreadnew%2Fquickpoi/lists"}