Excel 열수와 대응하는 자모의 전환
지금 코드를 붙여서 뒤에 대기하세요
public String getExcelColumnLetter(int column){
String columnLetter = "";
while(column > 26){
int remainder = column % 26;
if(0 == remainder){
columnLetter = (char)(64+26) + columnLetter;
column=(column-26)/26;
}else{
columnLetter = (char)(64+remainder) + columnLetter;
column=(column-remainder)/26;
}
}
columnLetter = (char)(64+column) + columnLetter;
return columnLetter;
}
이 코드의 열수는 1부터 시작된다.
또 인터넷에서 같은 기능의 코드를 보았는데, 좀 더 간결했다
public static String getExcelLabel(int index) {
String rs = "";
do {
index--;
rs = ((char) (index % 26 + (int) 'A')) + rs;
index = (int) ((index - index % 26) / 26);
} while (index > 0);
System.out.println(rs);
return rs;
}
위의 두 단락의 코드는 전송된 매개 변수에 대해 판단을 하지 않았으니, 만약 전송된 음수가 슬프게 된다면 각종 문자가 되돌아오기를 기다려라.필요할 때 함수 시작 부분에 판단 문장을 추가할 수 있다.
이 코드를 완성한 후에 또 아무 일도 없이 자모에서 열수까지의 함수를 썼으니 붙여라
public int getExcelColumnIndex(String columnLetter){
if(columnLetter == null || !columnLetter.matches("[a-zA-Z]+")){
return -1;
}
columnLetter = columnLetter.toUpperCase();
int columnIndex = 0;
char[] letters = columnLetter.toCharArray();
for(char let : letters){
columnIndex = (int)let - 64 + columnIndex*26;
}
return columnIndex;
}
이 코드는 전송된 문자열에 대해 대소문자의 제한이 없지만, 반드시 모두 알파벳으로 구성되어야 하며, 그렇지 않으면 -1로 되돌아와야 한다.문자열이 비합법적임을 나타냅니다.
마지막으로 검증 방법을 제공하다
Excel에서 A1 셀에 AB를 입력한 다음 B1 셀에 공식을 입력합니다: COLUMN(INDIRECT(A1&3)
이렇게 하면 B1칸에서 AB열에 대응하는 열 수 28을 얻을 수 있으며, excel2007에서 최대는 XFD만 입력할 수 있는 것 같다.
거꾸로 A2 셀에 28과 같은 열을 입력할 수 있고, B2 셀에 = LEFT(1, A2, 4, 1), LEN(1, A2, 4, 1)-1)
B2칸에서 28열에 대응하는 알파벳 AB를 얻을 수 있다.XFD에 해당하는 열 수는 16384이므로 16384보다 크지 않습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Excel Grep toolExcel Grep tool ■히나가타 ■ 시트 구성 ExcelGrep.cls...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.