Java excel的列号与数字的转换

起因:

        这件事的起因是我们老大让我整excel,由于我要用vba对excel进行操作,而我又完全不懂vba,写的代码和一坨屎一样,要一下一下的写,所以每次在哪里数列号就很心累。所以想要写一个列号和数字相互转换的demo。

        原文请看这里:(21条消息) Excel 的字母列号与数字互转思路与 Java 实现_pansong291PS的博客-CSDN博客


代码:

package com.demo.controller;import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Locale;/*** 方法说明: 用于excel列的计算* @version v1.0* @author liangalong* @date 2022-07-13 10:21
* */
@RestController
@RequestMapping("/ICT")
public class ICTransformation {@PostMapping("/getICT")public String getICT(String s){String s1 = "";try {Integer i = Integer.valueOf(s);s1 = ITransformation(i);}catch (Exception e){s1 = CTransformation(s);}return s1;}/*** 方法说明: 数字转列号* @param integer* @return java.lang.String* @version v1.0* @author liangalong* @date 2022-07-13 17:13*/public String ITransformation(Integer integer){int len = 0, power = 1, pre = 0;for (; pre < integer; pre += power) {power *= 26;len++;}char[] excelNum = new char[len];integer -= pre - power;integer--;for (int i = 0; i < len; i++) {power /= 26;excelNum[i] = (char) (integer / power + 'A');integer %= power;}return String.valueOf(excelNum);}/*** 方法说明: 列号转数字* @param s* @return java.lang.String* @version v1.0* @author liangalong* @date 2022-07-13 17:14*/public String CTransformation(String s){char[] chars = s.toUpperCase(Locale.ROOT).toCharArray();int i = 0;for (char c : chars) {i = i * 26 + (c - 'A' + 1);}return String.valueOf(i);}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部