Skip to content

Commit

Permalink
SpringBoot初始化模板v2.1.4 设计Apache POI操作Word模块及其配套工具类。
Browse files Browse the repository at this point in the history
  • Loading branch information
AntonyCheng committed Apr 10, 2024
1 parent 6ef573c commit a2b926f
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 26 deletions.
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

> **作者:[AntonyCheng](https://github.com/AntonyCheng)**
>
> **版本号:v2.1.3**
> **版本号:v2.1.4**
>
> **开源协议:[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0.html)**
Expand Down Expand Up @@ -89,7 +89,7 @@
- **MySQL**
- mysql-connector-j 8.0.33 == Java 连接 MySQL 依赖
- druid-spring-boot-starter 1.2.22 == Druid 连接池
- mybatis-plus-boot-starter 3.5.5 == MySQL 操作框架
- mybatis-plus-boot-starter 3.5.6 == MySQL 操作框架
- shardingsphere-jdbc-core 5.3.2 == 分布式数据库解决方案
- **工具类**
- lombok 1.18.32 == POJO 简化工具
Expand All @@ -100,12 +100,13 @@
- commons-pool2 2.12.0 == Apache Commons Pool 工具类
- commons-collections4 4.4 == Apache Commons Collections 工具类
- commons-math3 3.6.1 == Apache Commons Math 工具类
- commons-compress 1.26.1 == Apache Commons Compress 工具类
- okhttp 4.12.0 == OK Http 工具类
- okio 3.9.0 == OK IO 工具类
- fastjson2 2.0.48 == Fast JSON 工具类
- ip2region 2.7.0 == 离线 IP 地址定位库
- **权限校验**
- sa-token-spring-boot-starter == SaToken 认证鉴权框架
- sa-token-spring-boot-starter 1.37.0 == SaToken 认证鉴权框架
- sa-token-core 1.37.0 == SaToken 认证鉴权框架核心依赖
- sa-token-jwt 1.37.0 == SaToken 认证鉴权框架 JWT 依赖
- sa-token-redis-jackson 1.37.0 == SaToken 认证鉴权框架 Redis 依赖
Expand All @@ -124,11 +125,12 @@
- elasticsearch-rest-high-level-client 7.14.0 == ES 高级别客户端依赖
- logstash-logback-encoder 7.3 == Logstash 依赖
- **对象存储(OSS)**
- cos_api 5.6.208 == 腾讯云 COS
- cos_api 5.6.210 == 腾讯云 COS
- aliyun-sdk-oss 3.17.4 == 阿里云 OSS
- minio 8.5.9 == Minio 对象存储
- **文件操作**
- poi 5.2.5 == 操作 Word
- poi-tl 1.12.2 == 操作 Word 模板
- easyexcel 3.3.4 == 操作 Excel
- itext-core 8.0.3 == 操作 PDF
- **接口文档 & API调试**
Expand Down Expand Up @@ -161,7 +163,7 @@
- JSON 长整型精度处理
- 自动字段填充器
- 基于 Netty 的 WebSocket 全双工通信设计示例
- 对象存储、消息队列、缓存、分布式锁、限流、国际化、网络、Excel 等工具类
- 对象存储、消息队列、缓存、分布式锁、限流、国际化、网络、Excel、Word 等工具类

## 业务功能

Expand Down Expand Up @@ -1450,7 +1452,7 @@ Deployer 只能监听一个 MySQL 的增量日志。

## 下一步开发计划

* 设计方便简单的操作 Office 以及 PDF 的工具类
* 设计方便简单的操作 PDF 的工具类
* 集成 Prometheus 和 Grafana 监控报警平台(选做)
* 集成 Apache SkyWalking 链路追踪(选做)
* ......
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
</parent>
<groupId>top.sharehome</groupId>
<artifactId>spring-boot-init-template</artifactId>
<version>2.1.3</version>
<version>2.1.4</version>
<name>spring-boot-init-template</name>
<description>spring-boot-init-template</description>
<url>https://github.com/AntonyCheng/spring-boot-init-template</url>
Expand Down Expand Up @@ -59,7 +59,7 @@
<!-- MySQL相关 -->
<mysql.version>8.0.33</mysql.version>
<druid.starter.version>1.2.22</druid.starter.version>
<mybatis.plus.starter.version>3.5.5</mybatis.plus.starter.version>
<mybatis.plus.starter.version>3.5.6</mybatis.plus.starter.version>
<shardingsphere.version>5.3.2</shardingsphere.version>
<!-- 工具类相关 -->
<lombok.version>1.18.32</lombok.version>
Expand All @@ -86,7 +86,7 @@
<logstash.logback.version>7.3</logstash.logback.version>
<easy.es.starter.version>2.0.0-beta7</easy.es.starter.version>
<!-- 对象存储相关 -->
<tencent.cos.version>5.6.208</tencent.cos.version>
<tencent.cos.version>5.6.210</tencent.cos.version>
<ali.oss.version>3.17.4</ali.oss.version>
<ali.jaxb.version>2.3.1</ali.jaxb.version>
<ali.activation.version>1.1.1</ali.activation.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,6 @@ public class AuthController {
@Resource
private AuthService authService;

@GetMapping("/test")
@SaIgnore
public R<Void> test(HttpServletResponse response) {
ExcelUtils.exportTemplateHttpServletResponse("test", response);
return R.empty();
}

/**
* 注册
* todo 模板默认不使用该接口,但保留该接口,因为该模板中真实增加用户的接口应该是管理员增加用户
Expand Down
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -702,11 +702,12 @@ public static Map<Integer, TableMap> getTablesText(InputStream inputStream) {
* 从Word数据流中获取段落Byte[]
*
* @param inputStream Word数据流
* @return 返回图片Byte[]集合
* @return 返回段落Byte[]集合
*/
private static List<byte[]> getParagraphs(InputStream inputStream) {
try (XWPFDocument doc = new XWPFDocument(inputStream); inputStream) {
return doc.getParagraphs().stream()
return doc.getParagraphs()
.stream()
.map(paragraph -> paragraph.getText().getBytes())
.filter(ObjectUtils::isNotEmpty)
.collect(Collectors.toList());
Expand All @@ -723,7 +724,10 @@ private static List<byte[]> getParagraphs(InputStream inputStream) {
*/
private static List<byte[]> getPictures(InputStream inputStream) {
try (XWPFDocument doc = new XWPFDocument(inputStream); inputStream) {
return doc.getAllPictures().stream().map(XWPFPictureData::getData).collect(Collectors.toList());
return doc.getAllPictures()
.stream()
.map(XWPFPictureData::getData)
.collect(Collectors.toList());
} catch (IOException e) {
throw new CustomizeReturnException(ReturnCode.WORD_FILE_ERROR);
}
Expand All @@ -734,7 +738,7 @@ private static List<byte[]> getPictures(InputStream inputStream) {
* 注意:封装后得到xlsx文件不支持“合并”或者“拆分”的表格,即要求表格每行的列数和每列的行数均相同,否则导出得到的表格会不尽人意,如有这样的需求请使用getTablesText()拿到文本数据后自行填充
*
* @param inputStream Word输入流
* @return 返回Word中所有表格数据,每个表格均封装成Map,key值为行号,从0开始,value为该行每个单元格内容,最后所有Map装进List中返回
* @return 返回XLSX文件byte[]集合
*/
private static List<byte[]> getTables(InputStream inputStream, ExcelTypeEnum excelType) {
try (XWPFDocument doc = new XWPFDocument(inputStream); inputStream) {
Expand Down Expand Up @@ -800,6 +804,7 @@ private static void handleZipResponse(String fileName, HttpServletResponse respo
response.setHeader("download-filename", encodeName);
response.setContentType("application/x-zip-compressed;charset=UTF-8");
}

}

/**
Expand Down
15 changes: 9 additions & 6 deletions src/main/resources/knife4j/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
> **作者:[AntonyCheng](https://github.com/AntonyCheng)**
>
> **版本号:v2.1.3**
> **版本号:v2.1.4**
>
> **开源协议:[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0.html)**
Expand Down Expand Up @@ -56,6 +56,7 @@
* [搭建Deployer&Client系统](#搭建deployerclient系统)
* [兼容Java8](#兼容java8)
* [申明&联系我](#申明联系我)
* [模板预览](#模板预览)
* [下一步开发计划](#下一步开发计划)

## 模板特点
Expand All @@ -82,7 +83,7 @@
- **MySQL**
- mysql-connector-j 8.0.33 == Java 连接 MySQL 依赖
- druid-spring-boot-starter 1.2.22 == Druid 连接池
- mybatis-plus-boot-starter 3.5.5 == MySQL 操作框架
- mybatis-plus-boot-starter 3.5.6 == MySQL 操作框架
- shardingsphere-jdbc-core 5.3.2 == 分布式数据库解决方案
- **工具类**
- lombok 1.18.32 == POJO 简化工具
Expand All @@ -93,12 +94,13 @@
- commons-pool2 2.12.0 == Apache Commons Pool 工具类
- commons-collections4 4.4 == Apache Commons Collections 工具类
- commons-math3 3.6.1 == Apache Commons Math 工具类
- commons-compress 1.26.1 == Apache Commons Compress 工具类
- okhttp 4.12.0 == OK Http 工具类
- okio 3.9.0 == OK IO 工具类
- fastjson2 2.0.48 == Fast JSON 工具类
- ip2region 2.7.0 == 离线 IP 地址定位库
- **权限校验**
- sa-token-spring-boot-starter == SaToken 认证鉴权框架
- sa-token-spring-boot-starter 1.37.0 == SaToken 认证鉴权框架
- sa-token-core 1.37.0 == SaToken 认证鉴权框架核心依赖
- sa-token-jwt 1.37.0 == SaToken 认证鉴权框架 JWT 依赖
- sa-token-redis-jackson 1.37.0 == SaToken 认证鉴权框架 Redis 依赖
Expand All @@ -117,11 +119,12 @@
- elasticsearch-rest-high-level-client 7.14.0 == ES 高级别客户端依赖
- logstash-logback-encoder 7.3 == Logstash 依赖
- **对象存储(OSS)**
- cos_api 5.6.208 == 腾讯云 COS
- cos_api 5.6.210 == 腾讯云 COS
- aliyun-sdk-oss 3.17.4 == 阿里云 OSS
- minio 8.5.9 == Minio 对象存储
- **文件操作**
- poi 5.2.5 == 操作 Word
- poi-tl 1.12.2 == 操作 Word 模板
- easyexcel 3.3.4 == 操作 Excel
- itext-core 8.0.3 == 操作 PDF
- **接口文档 & API调试**
Expand Down Expand Up @@ -154,7 +157,7 @@
- JSON 长整型精度处理
- 自动字段填充器
- 基于 Netty 的 WebSocket 全双工通信设计示例
- 对象存储、消息队列、缓存、分布式锁、限流、国际化、网络、Excel 等工具类
- 对象存储、消息队列、缓存、分布式锁、限流、国际化、网络、Excel、Word 等工具类

## 业务功能

Expand Down Expand Up @@ -1403,7 +1406,7 @@ Deployer 只能监听一个 MySQL 的增量日志。

## 下一步开发计划

* 设计方便简单的操作 Office 以及 PDF 的工具类
* 设计方便简单的操作 PDF 的工具类
* 集成 Prometheus 和 Grafana 监控报警平台(选做)
* 集成 Apache SkyWalking 链路追踪(选做)
* ......

0 comments on commit a2b926f

Please sign in to comment.