diff --git a/bonus-api/bonus-api-system/pom.xml b/bonus-api/bonus-api-system/pom.xml
index 5596218..21a98e3 100644
--- a/bonus-api/bonus-api-system/pom.xml
+++ b/bonus-api/bonus-api-system/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-api
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-api/pom.xml b/bonus-api/pom.xml
index 547db28..e3dc255 100644
--- a/bonus-api/pom.xml
+++ b/bonus-api/pom.xml
@@ -4,7 +4,7 @@
com.bonus
bonus
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-auth/pom.xml b/bonus-auth/pom.xml
index 5897600..11612ef 100644
--- a/bonus-auth/pom.xml
+++ b/bonus-auth/pom.xml
@@ -4,7 +4,7 @@
com.bonus
bonus
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-common/bonus-common-core/pom.xml b/bonus-common/bonus-common-core/pom.xml
index 77b6ed3..9b44183 100644
--- a/bonus-common/bonus-common-core/pom.xml
+++ b/bonus-common/bonus-common-core/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-common
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/annotation/Excel.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/annotation/Excel.java
index e86a47d..bfd08f8 100644
--- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/annotation/Excel.java
+++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/annotation/Excel.java
@@ -18,6 +18,12 @@ import com.bonus.common.core.utils.poi.ExcelHandlerAdapter;
@Target(ElementType.FIELD)
public @interface Excel
{
+ /**
+ * 是否是序号
+ * @return
+ */
+ public boolean isSequence() default false;
+
/**
* 导出时在excel中排序
*/
diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/poi/ExcelUtil.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/poi/ExcelUtil.java
index 67e690e..c8d6610 100644
--- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/poi/ExcelUtil.java
+++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/poi/ExcelUtil.java
@@ -1,7 +1,9 @@
package com.bonus.common.core.utils.poi;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
@@ -20,6 +22,8 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
+
+import com.bonus.common.core.web.domain.AjaxResult;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.RegExUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
@@ -580,6 +584,7 @@ public class ExcelUtil
int startNo = index * SHEETSIZE;
int endNo = Math.min(startNo + SHEETSIZE, list.size());
int rowNo = (1 + rownum) - startNo;
+ int sequence=1;
for (int i = startNo; i < endNo; i++)
{
rowNo = isSubList() ? (i > 1 ? rowNo + 1 : rowNo + i) : i + 1 + rownum - startNo;
@@ -623,7 +628,7 @@ public class ExcelUtil
{
subField.setAccessible(true);
Excel attr = subField.getAnnotation(Excel.class);
- this.addCell(attr, row, (T) obj, subField, column + subIndex);
+ this.addCell(attr, row, (T) obj, subField, column + subIndex,sequence);
}
subIndex++;
}
@@ -633,9 +638,10 @@ public class ExcelUtil
}
else
{
- this.addCell(excel, row, vo, field, column++);
+ this.addCell(excel, row, vo, field, column++,sequence);
}
}
+ sequence++;
}
}
@@ -932,7 +938,7 @@ public class ExcelUtil
/**
* 添加单元格
*/
- public Cell addCell(Excel attr, Row row, T vo, Field field, int column)
+ public Cell addCell(Excel attr, Row row, T vo, Field field, int column, int sequence)
{
Cell cell = null;
try
@@ -956,7 +962,11 @@ public class ExcelUtil
String dateFormat = attr.dateFormat();
String readConverterExp = attr.readConverterExp();
String separator = attr.separator();
- if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value))
+ if(attr.isSequence()){
+ cell.setCellValue(sequence);
+ }
+
+ else if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value))
{
cell.setCellValue(parseDateToStr(dateFormat, value));
}
@@ -1551,4 +1561,74 @@ public class ExcelUtil
}
return method;
}
+
+ /**
+ * 对list数据源将其里面的数据导入到excel表单
+ *
+ * @param filePath 返回本地excel文件路径
+ * @param list 导出数据集合
+ * @param sheetName 工作表的名称
+ * @param title 标题
+ */
+ public AjaxResult exportExcelToLocalFile(String filePath, List list, String sheetName, String title)
+ {
+ this.init(list, sheetName, title, Type.EXPORT);
+ if (StringUtils.isNotBlank(filePath))
+ return exportExcelToLocalFile(filePath);
+ else
+ return exportExcelToLocalFile(sheetName);
+ }
+
+
+ /**
+ * 对list数据源将其里面的数据导出到excel表单
+ doNothing().when(excelUtil).init(null, sheetName, title, Type.EXPORT);
+ doNothing().when(excelUtil).exportExcelToLocalFile(filePath);
+
+ // Act
+ excelUtil.exportExcelToLocalFile(filePath, null, sheetName, title);
+
+ // Assert
+ File file = new File(filePath);
+ assertTrue(file.exists());
+
+ // Clean up
+ file.delete();
+ }
+
+ @Excel
+ public static class User {
+ private Long id;
+ private String name;
+ private String sex;
+ private Integer age;
+ private Date birthday;
+
+ // Getters and Setters
+ }
+ }
+ */
+ private AjaxResult exportExcelToLocalFile(String filePath)
+ {
+ OutputStream out = null;
+ try
+ {
+ writeSheet();
+ // 将文档写入文件
+ out = new FileOutputStream(filePath);
+ wb.write(out);
+ System.out.println("excel document export successfully.");
+ return AjaxResult.success(filePath);
+ }
+ catch (Exception e)
+ {
+ log.error("导出Excel异常{}", e.getMessage());
+ }
+ finally
+ {
+ IOUtils.closeQuietly(wb);
+ IOUtils.closeQuietly(out);
+ }
+ return AjaxResult.error("导出Excel失败,请联系网站管理员!");
+ }
}
diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/poi/WordUtil.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/poi/WordUtil.java
new file mode 100644
index 0000000..98554bc
--- /dev/null
+++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/poi/WordUtil.java
@@ -0,0 +1,74 @@
+import org.apache.poi.util.Units;
+import org.apache.poi.xwpf.usermodel.*;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class WordUtil {
+
+ private XWPFDocument document;
+
+ public WordUtil() {
+ this.document = new XWPFDocument();
+ }
+
+ // 创建段落
+ public void addParagraph(String text, int fontSize) {
+ XWPFParagraph paragraph = document.createParagraph();
+ XWPFRun run = paragraph.createRun();
+ run.setText(text);
+ run.setFontSize(fontSize);
+ }
+
+ // 插入图片
+ public void insertImage(String imgFilePath, int width, int height) {
+ try (InputStream is = new FileInputStream(imgFilePath)) {
+ XWPFParagraph paragraph = document.createParagraph();
+ XWPFRun run = paragraph.createRun();
+ run.addPicture(is, XWPFDocument.PICTURE_TYPE_PNG, imgFilePath, Units.toEMU(width), Units.toEMU(height));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ // 创建表格
+ public void createTable(int rows, int cols) {
+ XWPFTable table = document.createTable(rows, cols);
+ for (int row = 0; row < rows; row++) {
+ XWPFTableRow tableRow = table.getRow(row);
+ for (int cell = 0; cell < cols; cell++) {
+ XWPFTableCell tableCell = tableRow.getCell(cell);
+ tableCell.setText("Row " + row + ", Cell " + cell);
+ }
+ }
+ }
+
+ // 保存文档
+ public void saveDocument(String filePath) {
+ try (FileOutputStream out = new FileOutputStream(filePath)) {
+ document.write(out);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ // 关闭文档
+ public void closeDocument() {
+ try {
+ document.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void main(String[] args) {
+ WordUtil wordUtil = new WordUtil();
+ wordUtil.addParagraph("这是一个段落。", 16);
+ wordUtil.insertImage("path/to/image.png", 200, 200);
+ wordUtil.createTable(3, 3);
+ wordUtil.saveDocument("example.docx");
+ wordUtil.closeDocument();
+ }
+}
diff --git a/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/constant/ValidateUtilsTests.java b/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/constant/ValidateUtilsTests.java
index 6c8c826..cfc707d 100644
--- a/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/constant/ValidateUtilsTests.java
+++ b/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/constant/ValidateUtilsTests.java
@@ -1,12 +1,5 @@
package com.bonus.common.core.constant;
-//import com.alibaba.nacos.common.JustForTest;
-//import com.bonus.common.core.utils.ServletUtils;
-//import com.bonus.common.core.utils.StringUtils;
-//
-//import javax.servlet.http.HttpServletRequest;
-//import java.net.InetAddress;
-//import java.net.UnknownHostException;
import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.utils.ip.IpUtils;
diff --git a/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/ip/IpUtilsTests.java b/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/ip/IpUtilsTests.java
index 0cfc6f6..ec91c03 100644
--- a/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/ip/IpUtilsTests.java
+++ b/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/ip/IpUtilsTests.java
@@ -1,12 +1,6 @@
package com.bonus.common.core.utils.ip;
-//import com.alibaba.nacos.common.JustForTest;
-//import com.bonus.common.core.utils.ServletUtils;
-//import com.bonus.common.core.utils.StringUtils;
-//
-//import javax.servlet.http.HttpServletRequest;
-//import java.net.InetAddress;
-//import java.net.UnknownHostException;
+import com.bonus.common.core.utils.ip.IpUtils;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.Assert.*;
diff --git a/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/poi/ExcelUtilTests.java b/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/poi/ExcelUtilTests.java
new file mode 100644
index 0000000..55c03c0
--- /dev/null
+++ b/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/poi/ExcelUtilTests.java
@@ -0,0 +1,47 @@
+package com.bonus.common.core.utils.poi;
+import com.bonus.common.core.utils.poi.ExcelUtil;
+import org.junit.Test;
+import com.bonus.common.core.annotation.Excel;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.Assert.assertTrue;
+public class ExcelUtilTests {
+ @Test
+ public void testImportExcel() {
+ String currentPath = System.getProperty("user.dir");
+ System.out.println("当前执行路径: " + currentPath);
+ ExcelUtil excelUtil = new ExcelUtil(Person.class);
+ currentPath +="/src/test/java/com/bonus/common/core/utils/poi/test.xlsx";
+ try (FileInputStream fileInputStream = new FileInputStream(currentPath)) {
+ List persionList = excelUtil.importExcel(fileInputStream);
+ assertTrue(persionList.size() == 4);
+
+ } catch (FileNotFoundException e) {
+ throw new RuntimeException(e);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @Test
+ public void testExportExcel() {
+ String currentPath = System.getProperty("user.dir");
+ System.out.println("当前执行路径: " + currentPath);
+ ExcelUtil excelUtil = new ExcelUtil(Person.class);
+ Person p1 = new Person("admin",10);
+ Person p2 = new Person("admin2",20);
+
+ List personList = new ArrayList<>();
+ personList.add(p1);
+ personList.add(p2);
+ currentPath +="/src/test/java/com/bonus/common/core/utils/poi/testExport.xlsx";
+ excelUtil.exportExcelToLocalFile(currentPath,personList, "sheet1", null);
+
+
+ }
+
+}
diff --git a/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/poi/Person.java b/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/poi/Person.java
new file mode 100644
index 0000000..0cb7d13
--- /dev/null
+++ b/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/poi/Person.java
@@ -0,0 +1,35 @@
+package com.bonus.common.core.utils.poi;
+
+import com.bonus.common.core.annotation.Excel;
+
+public class Person {
+ @Excel(name = "序号", isSequence = true, cellType = Excel.ColumnType.NUMERIC, type = Excel.Type.EXPORT)
+ int sequence;
+ @Excel(name = "姓名", cellType = Excel.ColumnType.STRING)
+ String name;
+ @Excel(name = "年龄", isStatistics = true, cellType = Excel.ColumnType.NUMERIC)
+ int age;
+
+ // 公共无参构造函数
+ public Person() {
+ }
+
+ // 带参数的构造函数
+ public Person(String name, int age) {
+ this.name = name;
+ this.age = age;
+ }
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAge() {return age;}
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+}
diff --git a/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/poi/test.xlsx b/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/poi/test.xlsx
new file mode 100644
index 0000000..485976a
Binary files /dev/null and b/bonus-common/bonus-common-core/src/test/java/com/bonus/common/core/utils/poi/test.xlsx differ
diff --git a/bonus-common/bonus-common-datascope/pom.xml b/bonus-common/bonus-common-datascope/pom.xml
index 8019b82..25b14bb 100644
--- a/bonus-common/bonus-common-datascope/pom.xml
+++ b/bonus-common/bonus-common-datascope/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-common
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-common/bonus-common-datasource/pom.xml b/bonus-common/bonus-common-datasource/pom.xml
index 008cd3a..9e409c3 100644
--- a/bonus-common/bonus-common-datasource/pom.xml
+++ b/bonus-common/bonus-common-datasource/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-common
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-common/bonus-common-log/pom.xml b/bonus-common/bonus-common-log/pom.xml
index 47be440..afb5892 100644
--- a/bonus-common/bonus-common-log/pom.xml
+++ b/bonus-common/bonus-common-log/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-common
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-common/bonus-common-redis/pom.xml b/bonus-common/bonus-common-redis/pom.xml
index 59ca246..eca03f0 100644
--- a/bonus-common/bonus-common-redis/pom.xml
+++ b/bonus-common/bonus-common-redis/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-common
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-common/bonus-common-seata/pom.xml b/bonus-common/bonus-common-seata/pom.xml
index 24265c7..a0bab6d 100644
--- a/bonus-common/bonus-common-seata/pom.xml
+++ b/bonus-common/bonus-common-seata/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-common
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-common/bonus-common-security/pom.xml b/bonus-common/bonus-common-security/pom.xml
index 0ba8d1e..b427ab1 100644
--- a/bonus-common/bonus-common-security/pom.xml
+++ b/bonus-common/bonus-common-security/pom.xml
@@ -4,7 +4,7 @@
com.bonus
bonus-common
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-common/bonus-common-sensitive/pom.xml b/bonus-common/bonus-common-sensitive/pom.xml
index d2bcbca..6c51537 100644
--- a/bonus-common/bonus-common-sensitive/pom.xml
+++ b/bonus-common/bonus-common-sensitive/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-common
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-common/bonus-common-swagger/pom.xml b/bonus-common/bonus-common-swagger/pom.xml
index 28e284a..f9a3f65 100644
--- a/bonus-common/bonus-common-swagger/pom.xml
+++ b/bonus-common/bonus-common-swagger/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-common
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-common/pom.xml b/bonus-common/pom.xml
index 7ad1829..44e0412 100644
--- a/bonus-common/pom.xml
+++ b/bonus-common/pom.xml
@@ -4,7 +4,7 @@
com.bonus
bonus
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-gateway/pom.xml b/bonus-gateway/pom.xml
index e3c561b..59ae83f 100644
--- a/bonus-gateway/pom.xml
+++ b/bonus-gateway/pom.xml
@@ -4,7 +4,7 @@
com.bonus
bonus
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-modules/bonus-file/pom.xml b/bonus-modules/bonus-file/pom.xml
index dca2365..543a7c9 100644
--- a/bonus-modules/bonus-file/pom.xml
+++ b/bonus-modules/bonus-file/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-modules
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-modules/bonus-gen/pom.xml b/bonus-modules/bonus-gen/pom.xml
index 42d112d..077fdae 100644
--- a/bonus-modules/bonus-gen/pom.xml
+++ b/bonus-modules/bonus-gen/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-modules
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-modules/bonus-job/pom.xml b/bonus-modules/bonus-job/pom.xml
index 1d537b3..9dd99de 100644
--- a/bonus-modules/bonus-job/pom.xml
+++ b/bonus-modules/bonus-job/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-modules
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-modules/bonus-mongodb/pom.xml b/bonus-modules/bonus-mongodb/pom.xml
index b54c93b..68edd0a 100644
--- a/bonus-modules/bonus-mongodb/pom.xml
+++ b/bonus-modules/bonus-mongodb/pom.xml
@@ -6,7 +6,7 @@
com.bonus
bonus-modules
- 24.7.1
+ 24.8.0
bonus-modules-mongodb
diff --git a/bonus-modules/bonus-obs/pom.xml b/bonus-modules/bonus-obs/pom.xml
index ba929d1..c210c18 100644
--- a/bonus-modules/bonus-obs/pom.xml
+++ b/bonus-modules/bonus-obs/pom.xml
@@ -6,7 +6,7 @@
com.bonus
bonus-modules
- 24.7.1
+ 24.8.0
bonus-modules-obs
diff --git a/bonus-modules/bonus-oss/pom.xml b/bonus-modules/bonus-oss/pom.xml
index 5a8c71f..83b92bc 100644
--- a/bonus-modules/bonus-oss/pom.xml
+++ b/bonus-modules/bonus-oss/pom.xml
@@ -6,7 +6,7 @@
com.bonus
bonus-modules
- 24.7.1
+ 24.8.0
bonus-oss
diff --git a/bonus-modules/bonus-system/pom.xml b/bonus-modules/bonus-system/pom.xml
index aeed399..4737638 100644
--- a/bonus-modules/bonus-system/pom.xml
+++ b/bonus-modules/bonus-system/pom.xml
@@ -5,7 +5,7 @@
com.bonus
bonus-modules
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-modules/pom.xml b/bonus-modules/pom.xml
index 00d4b05..cc4d897 100644
--- a/bonus-modules/pom.xml
+++ b/bonus-modules/pom.xml
@@ -4,7 +4,7 @@
com.bonus
bonus
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-visual/bonus-monitor/pom.xml b/bonus-visual/bonus-monitor/pom.xml
index 9f42cbd..6496ff4 100644
--- a/bonus-visual/bonus-monitor/pom.xml
+++ b/bonus-visual/bonus-monitor/pom.xml
@@ -4,7 +4,7 @@
com.bonus
bonus-visual
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/bonus-visual/pom.xml b/bonus-visual/pom.xml
index 9adc06b..9079bbe 100644
--- a/bonus-visual/pom.xml
+++ b/bonus-visual/pom.xml
@@ -4,7 +4,7 @@
com.bonus
bonus
- 24.7.1
+ 24.8.0
4.0.0
diff --git a/pom.xml b/pom.xml
index 99c8b19..42982dc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,14 +6,14 @@
com.bonus
bonus
- 24.7.1
+ 24.8.0
bonus
http://www.ahbonus.cn
博诺思微服务系统
- 24.7.1
+ 24.8.0
UTF-8
UTF-8
1.8