From 4e8da8055692c845345f48e891850b6a685977be Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 25 六月 2026 15:43:51 +0800
Subject: [PATCH] update
---
admin-server/src/main/java/com/estate/expert/admin/io/processor/RowDataProcessorBase.java | 37 +++++++++++++++++++++++++++++++++++--
1 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/admin-server/src/main/java/com/estate/expert/admin/io/processor/RowDataProcessorBase.java b/admin-server/src/main/java/com/estate/expert/admin/io/processor/RowDataProcessorBase.java
index a3f4b8a..790eb1a 100644
--- a/admin-server/src/main/java/com/estate/expert/admin/io/processor/RowDataProcessorBase.java
+++ b/admin-server/src/main/java/com/estate/expert/admin/io/processor/RowDataProcessorBase.java
@@ -16,6 +16,18 @@
protected abstract List<String> buildRowData(T data);
+ /**
+ * 构建行数据(支持不同类型)
+ * 子类可以重写此方法以返回包含不同类型数据的列表(如数字、字符串等)
+ * 如果子类重写了此方法,writeSheet 将使用此方法而不是 buildRowData
+ *
+ * @param data 数据对象
+ * @return 行数据列表,可以包含 String、Number 等类型
+ */
+ protected List<Object> buildRowDataObjects(T data) {
+ return null;
+ }
+
protected T parseRowData(int rowIndex, List<String> rowData) {
return null;
}
@@ -55,7 +67,16 @@
int index = 1;
for (var d : data) {
- var rowData = buildRowData(d);
+ // 优先使用 buildRowDataObjects,如果未实现则使用 buildRowData
+ List<Object> rowDataObjects = buildRowDataObjects(d);
+ List<?> rowData;
+
+ if (rowDataObjects != null) {
+ rowData = rowDataObjects;
+ } else {
+ rowData = buildRowData(d);
+ }
+
if (rowData == null)
continue;
@@ -65,7 +86,19 @@
var row = sheet.createRow(index++);
for (int i = 0; i < rowData.size(); i++) {
- row.createCell(i).setCellValue(rowData.get(i));
+ var cell = row.createCell(i);
+ var value = rowData.get(i);
+
+ // 根据数据类型设置单元格值
+ if (value == null || value.equals("-")) {
+ cell.setCellValue("-");
+ } else if (value instanceof Number) {
+ cell.setCellValue(((Number) value).doubleValue());
+ } else if (value instanceof Boolean) {
+ cell.setCellValue((Boolean) value);
+ } else {
+ cell.setCellValue(value.toString());
+ }
}
}
}
--
Gitblit v1.7.1