이 문서의 예에서는 PHP가 26개 이상의 열이 있고 Z보다 큰 Excel 열 이름을 생성할 때의 해결 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
우리는 모두 엑셀을 생성할 때 phpExcel 클래스를 사용합니다. 여기서는 26열을 초과하고 Z보다 큰 Excel 열 이름을 생성할 때의 해결 방법을 소개합니다. 이것이 제가 오늘 발견한 phpExcel 클래스입니다. 메모와 코드를 다음과 같이 기록하세요.
공용 정적 함수 stringFromColumnIndex($pColumnIndex = 0)
{
// 조회 캐시를 사용하면 약간의 메모리 오버헤드가 추가되지만 속도는 향상됩니다.
// 메서드 내에서 정적을 사용하여 캐싱하는 것이 정적 클래스보다 빠릅니다.
// 추가 메모리 오버헤드이지만
static $_indexCache = array()
If (!isset($_indexCache[$pColumnIndex])) {
// 열 문자열 결정
If ($pColumnIndex < 26) {
$_indexCache[$pColumnIndex] = chr(65 $pColumnIndex)
} elseif ($pColumnIndex < 702) {
$_indexCache[$pColumnIndex] = chr(64 ($pColumnIndex / 26)) chr(65 $pColumnIndex % 26);
} else {
$_indexCache[$pColumnIndex] = chr(64 (($pColumnIndex - 26) / 676)) . chr(65 ((($pColumnIndex - 26) % 676) / 26)) chr(65 $pColumnIndex % 26);
~
~
$_indexCache[$pColumnIndex] 반환
}
해당 열의 숫자 일련번호를 문자로 변환하면 다음과 같습니다.
코드 복사
코드는 다음과 같습니다.PHPExcel_Cell::stringFromColumnIndex($i) // 시작
열의 문자를 숫자 일련번호로 변환하면 다음과 같습니다.
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.