我正在尝试使用 JExcel 重新排序一些 Excel 列。我还需要找到对其他单元格的引用,然后重新映射它们以引用正确的单元格。我觉得我做了很多艰苦的工作,但我遇到了一个绊脚石。
我在wikipedia上找到了这段代码,链接到 SO:
 public static String toBase26(int number){
        number = Math.abs(number);
        String converted = "";
        // Repeatedly divide the number by 26 and convert the
        // remainder into the appropriate letter.
        do
        {
            int remainder = number % 26;
            converted = (char)(remainder + 'A') + converted;
            number = (number - remainder) / 26;
        } while (number > 0);
        return converted;
    }
但是当我在其中运行数字 35 时,会发生以下情况:
- number= 35
- remainder= 9
- converted= 字符(9+'A')+"" = J
- number= (35-9)/26 = 1
- 1>0
- remainder= 1
- char(1+'A')= B
- converted= 字符(1+'A')+"J" = BJ
以某种预期的方式,即 Base 10 (35) = Base 26 (19)。但我实际上想参考 AJ 栏。
我无法弄清楚我需要做哪些改变才能得到正确的字母。每当我试图在纸上解决它时,我最终都会毁掉之前提取的字母。例如,我认为这行不通,因为这意味着我remainder第一次以 8 结束,然后将转换为 I,除非我错过了什么?
对此的任何帮助将不胜感激。我环顾四周并在这上面浪费了足够的时间。我只是想要一些帮助来让它工作。