일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- port
- sendmail
- 메일
- codeigniter
- pingtest
- vscode
- JavaScript
- erp
- 유효성
- 트랜젝션
- 이메일주소
- php
- crontab
- 정규식
- jquery
- ping
- 자바스크립트
- 문자열
- 목차만들기
- MSSQL
- MYSQL
- 정규표현식
- python
- sp_who
- 핑
- js
- 리눅스
- 더존ERP
- 핑테스트
- 포트
Archives
- Today
- Total
ioerror
엑셀의 셀좌표를 숫자 인덱싱 하기 본문
반응형
상황
PhpSpreadsheet를 사용하여 데이터를 등록하는 프로그램을 할 때 셀의 가로 키값(칼럼)을 인덱 싱하여 선택적으로 등록하려다 보니 문자보다는 숫자 키값을 사용하는 것이 편해서 아래 방법을 찾아봤다. 그런데 나중에 PhpSpreadsheet API 문서를 보니 컬럼 키값을 문자열이 아닌 숫자 키를 가진 배열을 반환해주는 기능이 메서드가 있었다. RTFM이다.
이건 PHP 쪽에 가야 하는데, PhpSpreadsheet 다룰 때 하기로 하고 javascript에서 사용할 수도 있을 거 같아서 남겨놓는다.
엑셀 형식의 문자열을 키값을 숫자 키값으로 변환
/**
* 요청된 엑셀 컬럼의 문자열 키값을 숫자로 반환
* letter = A 이면 1 (startIndex = 1 기본값)
* startIndex = 1 이면 letter = A = 1
* startIndex = 0 이면 letter = A = 0
*/
function numberFromLetter(letter, stratIndex) {
stratIndex = typeof (stratIndex) != 'undefined' ? stratIndex : 1;
letter = letter.toUpperCase();
let number = 0, len = letter.length;
for (pos = 0; pos < len; pos++) {
number += (letter.charCodeAt(pos) - 65 + stratIndex) * Math.pow(26, len - pos - 1);
}
return number;
}
console.log(numberFromLetter('A',1)); // 1 = A
숫자 키값을 엑셀 칼럼 키값 형식으로 변환
/**
* 요청된 숫자(number)에 해당하는 엑셀 컬럼 문자열 키값
* number = 1 이면 A (startIndex = 1 기본값)
* startIndex = 1 이면 number = 1 = A
* startIndex = 0 이면 number = 1 = B
* */
function letterFromNumber(number, stratIndex) {
stratIndex = typeof (stratIndex) != 'undefined' ? stratIndex : 1;
let key = number % 26;
let letter = String.fromCharCode(65 + key - stratIndex);
number2 = parseInt(number / 26);
if (number2 > 0) {
return letterFromNumber(number2 - 1) + letter;
}
return letter;
}
console.log(letterFromNumber(1)); // 1 = A
반응형
'JavaScript' 카테고리의 다른 글
Vue + Codeigniter 연동하기 (0) | 2022.11.05 |
---|---|
Node.js , npm 업그레이드 방법 (0) | 2022.05.05 |
과목별 가중치(배점)가 설정된 경우 배점 환산 점수는? (0) | 2022.04.23 |
분기의 n번째 월은? n월이 포함된 분기는? (0) | 2022.04.23 |
자주 사용하는 정규표현식 모음 (0) | 2021.09.05 |
Comments