Преглед изворни кода

feat:
新增初版 自动排床

18339543638 пре 2 година
родитељ
комит
2871369639

+ 27 - 1
tr-modules/tr-module-export/src/main/java/cn/tr/module/excel/core/handler/write/CustomRowWriteHandler.java

@@ -169,7 +169,7 @@ public class CustomRowWriteHandler implements RowWriteHandler {
     }
 
     private String buildRange(int offset, int startRow, int rowCount) {
-        char start = (char) ('A' + offset);
+        String start = Hex26.toHex26(startRow);
         return "$" + start + "$" + startRow + ":$" + start + "$" + (startRow + rowCount - 1);
     }
 
@@ -258,4 +258,30 @@ public class CustomRowWriteHandler implements RowWriteHandler {
     private CellRangeAddressList createColumnCellRange(int column){
         return new CellRangeAddressList(1, ExcelConstant.MAX_ROW,column,column);
     }
+
+
+    static class Hex26 {
+        // 进制基础值,也可以修改为'a'
+        private final static char A = 'A';
+
+
+        public static String toHex26(int i) {
+            StringBuilder sb = new StringBuilder();
+            if (i == 0) {
+                sb.append(A);
+                return sb.toString();
+            }
+            int divide = i / 26;
+            if (divide > 0) {
+                for (int j = 0; j < divide; j++) {
+                    sb.append(A);
+                }
+            }
+            int m = i % 26;
+            char c = (char) (A + m);
+            sb.append(c);
+            return sb.toString();
+        }
+    }
+
 }