publicstaticfunctionstringFromColumnIndex($pColumnIndex=0){// Using a lookup cache adds a slight memory overhead, but boosts speed
// caching using a static within the method is faster than a class static,
// though it's additional memory overhead
static$_indexCache=array();if(!isset($_indexCache[$pColumnIndex])){// Determine column string
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);}}return$_indexCache[$pColumnIndex];}