|
18 | 18 | import java.time.LocalDateTime; |
19 | 19 | import java.time.format.DateTimeFormatter; |
20 | 20 | import java.util.Date; |
| 21 | +import java.util.LinkedHashMap; |
21 | 22 | import java.util.List; |
22 | 23 | import java.util.Map; |
23 | 24 |
|
@@ -57,8 +58,21 @@ public void exportData(String path, DataViewData data) throws Exception { |
57 | 58 | Workbook workbook = new Workbook(fos, "JumpServer", "4.0")) { |
58 | 59 |
|
59 | 60 | Worksheet sheet = workbook.newWorksheet("Data"); |
60 | | - List<Field> fields = data.getFields(); |
61 | | - List<Map<String, Object>> rows = data.getData(); |
| 61 | + |
| 62 | + |
| 63 | + List<Field> fields = data.getFields().stream() |
| 64 | + .filter(f -> !f.getName().equalsIgnoreCase("ROWNUM")) |
| 65 | + .toList(); |
| 66 | + data.setFields(fields); |
| 67 | + |
| 68 | + List<Map<String, Object>> rows = data.getData().stream() |
| 69 | + .map(m -> { |
| 70 | + Map<String, Object> newMap = new LinkedHashMap<>(m); |
| 71 | + newMap.remove("ROWNUM"); |
| 72 | + return newMap; |
| 73 | + }) |
| 74 | + .toList(); |
| 75 | + |
62 | 76 |
|
63 | 77 | for (int col = 0; col < fields.size(); col++) { |
64 | 78 | sheet.value(0, col, fields.get(col).getName()); |
@@ -97,13 +111,26 @@ class DataExportCSV implements DataExportInterface { |
97 | 111 | public void exportData(String path, DataViewData data) throws Exception { |
98 | 112 | var writer = Files.newBufferedWriter(Path.of(path)); |
99 | 113 |
|
100 | | - for (Field field : data.getFields()) { |
| 114 | + List<Field> fields = data.getFields().stream() |
| 115 | + .filter(f -> !f.getName().equalsIgnoreCase("ROWNUM")) |
| 116 | + .toList(); |
| 117 | + data.setFields(fields); |
| 118 | + |
| 119 | + List<Map<String, Object>> rows = data.getData().stream() |
| 120 | + .map(m -> { |
| 121 | + Map<String, Object> newMap = new LinkedHashMap<>(m); |
| 122 | + newMap.remove("ROWNUM"); |
| 123 | + return newMap; |
| 124 | + }) |
| 125 | + .toList(); |
| 126 | + |
| 127 | + for (Field field : fields) { |
101 | 128 | writeString(writer, field.getName()); |
102 | 129 | writer.write(","); |
103 | 130 | } |
104 | 131 | writer.newLine(); |
105 | | - for (Map<String, Object> row : data.getData()) { |
106 | | - for (Field field : data.getFields()) { |
| 132 | + for (Map<String, Object> row : rows) { |
| 133 | + for (Field field : fields) { |
107 | 134 | var obj = row.get(field.getName()); |
108 | 135 | if (obj == null) { |
109 | 136 | writer.write("NULL"); |
|
0 commit comments