Created
August 3, 2015 11:33
-
-
Save hazeim254/224f26ee34fb875006ce to your computer and use it in GitHub Desktop.
Simple functions to convert between column number and column names in Excel
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Converts the column number to proper Excel column format | |
* | |
* @param $number column number to be converted | |
* | |
* @return Returns Excel column name | |
*/ | |
function excelConvertToCell($number) | |
{ | |
if ($number <= 26) { | |
return chr(ord('A') - 1 + $number); | |
} | |
$basic = intval($number / 26); | |
$modulus = $number % 26; | |
if ($modulus == 0) { | |
$basic --; | |
$modulus = 26; | |
} | |
return excelConvertToCell($basic) . excelConvertToCell($modulus); | |
} | |
/** | |
* Converts Excel column name to column number | |
* | |
* @param $number column name to be converted | |
* | |
* @return Returns column number | |
*/ | |
function excelConvertToNumber($cell) | |
{ | |
$len = strlen($cell); | |
if (1 === $len) { | |
return ord(strtoupper($cell)) - ord("A") + 1; | |
} | |
$number = 0; | |
for ($i = 0; $i < $len; ++$i) { | |
$number += excelConvertToNumber($cell[$i]) * pow(26, $len - $i - 1); | |
} | |
return $number; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment