{"id":18565112,"url":"https://github.com/jenly1314/wordpoi","last_synced_at":"2025-04-10T04:32:26.665Z","repository":{"id":72501477,"uuid":"191564192","full_name":"jenly1314/WordPOI","owner":"jenly1314","description":":thumbsup: WordPOI是一个将Word接口文档转换成JavaBean的工具库，主要目的是减少部分无脑的开发工作。","archived":false,"fork":false,"pushed_at":"2024-01-27T09:32:00.000Z","size":18483,"stargazers_count":7,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T16:11:15.477Z","etag":null,"topics":["apache-poi","java","poi","tool","word-javabean","word-poi","word2bean","word2entity","word2javabean","wordpoi","wordtobean","wordtoentity","wordtojavabean"],"latest_commit_sha":null,"homepage":"","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/jenly1314.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}},"created_at":"2019-06-12T12:11:55.000Z","updated_at":"2024-06-29T07:28:56.000Z","dependencies_parsed_at":"2023-09-17T18:46:42.732Z","dependency_job_id":null,"html_url":"https://github.com/jenly1314/WordPOI","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FWordPOI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FWordPOI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FWordPOI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jenly1314%2FWordPOI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jenly1314","download_url":"https://codeload.github.com/jenly1314/WordPOI/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248157588,"owners_count":21057038,"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":["apache-poi","java","poi","tool","word-javabean","word-poi","word2bean","word2entity","word2javabean","wordpoi","wordtobean","wordtoentity","wordtojavabean"],"created_at":"2024-11-06T22:17:45.999Z","updated_at":"2025-04-10T04:32:21.657Z","avatar_url":"https://github.com/jenly1314.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WordPOI\r\n\r\n[![Download](https://img.shields.io/badge/download-jar-blue.svg)](https://raw.githubusercontent.com/jenly1314/WordPOI/master/libs/word-poi-1.0.1.jar)\r\n[![JitPack](https://jitpack.io/v/jenly1314/WordPOI.svg)](https://jitpack.io/#jenly1314/WordPOI)\r\n[![CI](https://travis-ci.org/jenly1314/WordPOI.svg?branch=master)](https://travis-ci.org/jenly1314/WordPOI)\r\n[![CircleCI](https://circleci.com/gh/jenly1314/WordPOI.svg?style=svg)](https://circleci.com/gh/jenly1314/WordPOI)\r\n[![License](https://img.shields.io/badge/license-Apche%202.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)\r\n\r\nWordPOI是一个将Word接口文档转换成JavaBean的工具库，主要目的是减少部分无脑的开发工作。\r\n\r\n\u003e 核心功能：将文档中表格定义的实体转换成Java实体对象\r\n \r\n## 引入\r\n\r\n### Gradle:\r\n\r\n1. 在Project的 **build.gradle** 或 **setting.gradle** 中添加远程仓库\r\n\r\n    ```gradle\r\n    repositories {\r\n        //...\r\n        mavenCentral()\r\n        maven { url 'https://jitpack.io' }\r\n    }\r\n    ```\r\n\r\n2. 在Module的 **build.gradle** 里面添加引入依赖项\r\n\r\n    ```gradle\r\n    implementation 'com.github.jenly1314:WordPOI:1.0.1'\r\n    ```\r\n\r\n* WordPOI依赖的库：\r\n```gradle\r\nimplementation 'org.apache.poi:poi:4.1.0'\r\nimplementation 'org.apache.poi:poi-ooxml:4.1.0'\r\nimplementation 'org.apache.poi:poi-scratchpad:4.1.0'\r\n```\r\n\r\n### 本地依赖jar\r\n\r\n你也可以通过本地依赖的方式来引入jar库，直接点击左上角的Download[下载最新的jar库](https://raw.githubusercontent.com/jenly1314/WordPOI/master/libs/word-poi-1.0.1.jar)，然后引入到你的工程即可。\r\n\r\n## 使用\r\n\r\n## WordPOI特性说明  \r\n 1. 支持解析doc格式和docx格式的Word文档\r\n 2. 支持批量解析Word文档并转换成实体\r\n 3. 解析配置支持自定义，详情请查看{@link ParseConfig}相关配置\r\n 4. 虽然解析可配置，但因文档内容的不可控，解析转换也具有一定的局限性\r\n\r\n\u003e 只要在文档上定义实体对象时，尽量满足示例文档的规则，就可以规避解析转换时的局限性。\r\n\r\n### ParseConfig属性说明\r\n| 属性 | 值类型 | 默认值 | 说明 |\r\n| :------| :------ | :------ | :------ |\r\n| startTable | int |0| 开始表格 |\r\n| startRow | int |1| 开始行 |\r\n| startColumn | int |0| 开始列 |\r\n| fieldNameColumn | int | 0 | 字段名称所在列 |\r\n| fieldTypeColumn | int | 1 | 字段类型所在列 |\r\n| fieldDescColumn | int | 2 | 字段注释说明所在列 |\r\n| charsetName | String | UTF-8 | 字符集编码 |\r\n| genGetterAndSetter | boolean | true | 是否生成get和set方法 |\r\n| genToString | boolean | true | 是否生成toString方法 |\r\n| useLombok | boolean |false| 是否使用Lombok |\r\n| parseEntityName | boolean |false| 是否解析实体名称 |\r\n| entityNameRow | int | 0 | 实体名称所在行 |\r\n| entityNameColumn | int | 0 | 实体名称所在列 |\r\n| serializable | boolean | false | 是否实现Serializable序列化 |\r\n| showHeader | boolean | true | 是否显示头注释 |\r\n| header | String | Created by WordPOI | 头注释内容 |\r\n| transformations | Map\u0026lt;String,String\u0026gt; |  | 需要转型的集合（自定义转型配置） |\r\n\r\n### 代码示例\r\n\r\n代码示例 (直接在main方法中调用即可)\r\n```Java\r\n        try {\r\n\r\n            /**\r\n             * 解析文档中的表格实体，表格包含了实体名称，只需配置 {@link ParseConfig#parseEntityName} 为 true 和相关对应行，即可开启自动解析实体名称，自动解析实体名称\r\n             * {@link ParseConfig}中包含解析时需要的各种配置，方便灵活的支持文档中更多的表格样式\r\n             */\r\n            ParseConfig config  = new ParseConfig.Builder().startRow(2).parseEntityName(true).build();\r\n            WordPOI.wordToEntity(Test.class.getResourceAsStream(\"Api3.docx\"),false,\"C:/bean/\",\"com.king.poi.bean\",config);\r\n            //解析文档docx格式  需要传生成的对象实体名称\r\n//            WordPOI.wordToEntity(Test.class.getResourceAsStream(\"Api1.docx\"),false,\"C:/bean/\",\"com.king.poi.bean\",\"Result\",\"PageInfo\");\r\n            //解析文档docx格式  需要传生成的对象实体名称\r\n//            WordPOI.wordToEntity(Test.class.getResourceAsStream(\"Api2.doc\"),true,\"C:/bean/\",\"com.king.poi.bean\",\"TestBean\");\r\n        } catch (Exception e) {\r\n            e.printStackTrace();\r\n        }\r\n\r\n```\r\n\r\n### 文档示例\r\n\r\n* 文档实体示例一（默认格式，见文档 Api1.docx）\r\n\r\n1.1.\tResult （响应结果实体）\r\n\r\n| 字段    | 字段类型  |   说明  |\r\n| :------| :------ | :------ |\r\n|code    |  String | 0-代表成功，其它代表失败 |\r\n|desc    |  String |\t操作失败时的说明信息 |\r\n|data    |\tT\t   |   返回对应的泛型\u003cT\u003e实体对象 |\r\n\r\n\r\n1.2.\tPageInfo （页码信息实体）\r\n\r\n| 字段     |   字段类型    |   说明  |\r\n| :------ | :------ | :------ |\r\n| curPage   | Integer   |\t当前页码 |\r\n| pageSize  | Integer   |\t页码大小，每一页的记录条数 |\r\n| totalPage | Integer\t| 总页数 | \r\n| hasNext   | Boolean\t|  是否有下一页 | \r\n| data\t    | List\u0026lt;T\u0026gt; | \t泛型T为对应的数据记录实体 | \r\n\r\n\r\n* 文档实体示例二（自动解析实体名称格式，见文档 Api3.docx）\r\n\r\n1.1.    响应结果实体\r\n\r\n\u003ctable\u003e\r\n    \u003ctr\u003e\r\n    \t\u003ctd colspan=\"3\"\u003eResult\u003c/td\u003e    \r\n   \u003c/tr\u003e\r\n   \u003ctr\u003e\r\n        \u003ctd\u003e字段\u003c/td\u003e \r\n        \u003ctd\u003e字段类型\u003c/td\u003e \r\n        \u003ctd\u003e说明\u003c/td\u003e \r\n   \u003c/tr\u003e\r\n   \u003ctr\u003e\r\n        \u003ctd\u003ecode\u003c/td\u003e \r\n        \u003ctd\u003eString\u003c/td\u003e \r\n        \u003ctd\u003e0-代表成功，其它代表失败\u003c/td\u003e \r\n   \u003c/tr\u003e\r\n   \u003ctr\u003e\r\n        \u003ctd\u003edesc\u003c/td\u003e \r\n        \u003ctd\u003eString\u003c/td\u003e \r\n        \u003ctd\u003e操作失败时的说明信息\u003c/td\u003e \r\n   \u003c/tr\u003e\r\n   \u003ctr\u003e\r\n        \u003ctd\u003edata\u003c/td\u003e \r\n        \u003ctd\u003eT\u003c/td\u003e \r\n        \u003ctd\u003e返回对应的泛型\u0026lt;T\u0026gt;实体对象\u003c/td\u003e \r\n   \u003c/tr\u003e\r\n\r\n\u003c/table\u003e\r\n\r\n\r\n1.2.    页码信息实体\r\n\r\n\u003ctable\u003e\r\n    \u003ctr\u003e\r\n    \t\u003ctd colspan=\"3\"\u003ePageInfo\u003c/td\u003e    \r\n   \u003c/tr\u003e\r\n   \u003ctr\u003e\r\n        \u003ctd\u003e字段\u003c/td\u003e \r\n        \u003ctd\u003e字段类型\u003c/td\u003e \r\n        \u003ctd\u003e说明\u003c/td\u003e \r\n   \u003c/tr\u003e\r\n   \u003ctr\u003e\r\n        \u003ctd\u003ecurPage\u003c/td\u003e \r\n        \u003ctd\u003eInteger\u003c/td\u003e \r\n        \u003ctd\u003e当前页码\u003c/td\u003e \r\n   \u003c/tr\u003e\r\n   \u003ctr\u003e\r\n        \u003ctd\u003ecurPage\u003c/td\u003e \r\n        \u003ctd\u003eInteger\u003c/td\u003e \r\n        \u003ctd\u003e当前页码\u003c/td\u003e \r\n   \u003c/tr\u003e\r\n   \u003ctr\u003e\r\n        \u003ctd\u003epageSize\u003c/td\u003e \r\n        \u003ctd\u003eInteger\u003c/td\u003e \r\n        \u003ctd\u003e页码大小，每一页的记录条数\u003c/td\u003e \r\n   \u003c/tr\u003e\r\n   \u003ctr\u003e\r\n        \u003ctd\u003etotalPage\u003c/td\u003e \r\n        \u003ctd\u003eInteger\u003c/td\u003e \r\n        \u003ctd\u003e总页数\u003c/td\u003e \r\n   \u003c/tr\u003e\r\n   \u003ctr\u003e\r\n        \u003ctd\u003ehasNext\u003c/td\u003e \r\n        \u003ctd\u003eBoolean\u003c/td\u003e \r\n        \u003ctd\u003e是否有下一页\u003c/td\u003e \r\n   \u003c/tr\u003e\r\n   \u003ctr\u003e\r\n        \u003ctd\u003edata\u003c/td\u003e \r\n        \u003ctd\u003eList\u0026lt;T\u0026gt;\u003c/td\u003e \r\n        \u003ctd\u003e泛型T为对应的数据记录实体\u003c/td\u003e \r\n   \u003c/tr\u003e\r\n\r\n\u003c/table\u003e\r\n\r\n更多使用详情，请查看[Test](src/test/java/Test.java)中的源码使用示例或直接查看[API帮助文档](https://jenly1314.github.io/projects/WordPOI/doc/)\r\n\r\n## 版本记录\r\n\r\n#### v1.0.1：2019-9-17\r\n*  支持自动解析实体名称\r\n*  支持添加自定义转型配置\r\n\r\n#### v1.0.0：2019-6-12\r\n*  WordPOI初始版本\r\n\r\n## 赞赏\r\n如果您喜欢WordPOI，或感觉WordPOI帮助到了您，可以点右上角“Star”支持一下，您的支持就是我的动力，谢谢 :smiley:\r\n\u003cp\u003e您也可以扫描下面的二维码，请作者喝杯咖啡 :coffee:\r\n\r\n\u003cdiv\u003e\r\n   \u003cimg src=\"https://jenly1314.github.io/image/page/rewardcode.png\"\u003e\r\n\u003c/div\u003e\r\n\r\n## 关于我\r\n\r\n| 我的博客                                                                                | GitHub                                                                                  | Gitee                                                                                  | CSDN                                                                                 | 博客园                                                                            |\r\n|:------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------|\r\n| \u003ca title=\"我的博客\" href=\"https://jenly1314.github.io\" target=\"_blank\"\u003eJenly's Blog\u003c/a\u003e | \u003ca title=\"GitHub开源项目\" href=\"https://github.com/jenly1314\" target=\"_blank\"\u003ejenly1314\u003c/a\u003e | \u003ca title=\"Gitee开源项目\" href=\"https://gitee.com/jenly1314\" target=\"_blank\"\u003ejenly1314\u003c/a\u003e  | \u003ca title=\"CSDN博客\" href=\"http://blog.csdn.net/jenly121\" target=\"_blank\"\u003ejenly121\u003c/a\u003e  | \u003ca title=\"博客园\" href=\"https://www.cnblogs.com/jenly\" target=\"_blank\"\u003ejenly\u003c/a\u003e  |\r\n\r\n## 联系我\r\n\r\n| 微信公众号        | Gmail邮箱                                                                          | QQ邮箱                                                                              | QQ群                                                                                                                       | QQ群                                                                                                                       |\r\n|:-------------|:---------------------------------------------------------------------------------|:----------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------|\r\n| [Jenly666](http://weixin.qq.com/r/wzpWTuPEQL4-ract92-R) | \u003ca title=\"给我发邮件\" href=\"mailto:jenly1314@gmail.com\" target=\"_blank\"\u003ejenly1314\u003c/a\u003e | \u003ca title=\"给我发邮件\" href=\"mailto:jenly1314@vip.qq.com\" target=\"_blank\"\u003ejenly1314\u003c/a\u003e | \u003ca title=\"点击加入QQ群\" href=\"https://qm.qq.com/cgi-bin/qm/qr?k=6_RukjAhwjAdDHEk2G7nph-o8fBFFzZz\" target=\"_blank\"\u003e20867961\u003c/a\u003e | \u003ca title=\"点击加入QQ群\" href=\"https://qm.qq.com/cgi-bin/qm/qr?k=Z9pobM8bzAW7tM_8xC31W8IcbIl0A-zT\" target=\"_blank\"\u003e64020761\u003c/a\u003e |\r\n\r\n\u003cdiv\u003e\r\n   \u003cimg src=\"https://jenly1314.github.io/image/page/footer.png\"\u003e\r\n\u003c/div\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenly1314%2Fwordpoi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjenly1314%2Fwordpoi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjenly1314%2Fwordpoi/lists"}