tohokuaikiのチラシの裏

技術的ネタとか。

PHPExcel使ってて、必要になったAAを27にする関数

<?php
    /**
     * @brief Excelの横軸の文字列を数値にする。AAを27にしたりする
     * @param 
     * @retval
     */
    function excelRow2Num($str)
    {
        $abc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

        $str = strtoupper($str);

        $num = 0;
        $counter = 0;
        for ($i=strlen($str)-1; $i>=0; $i--){
            $seek = strpos($abc, $str{$i}) + 1;
            $num += $seek * pow(26, $counter) ;
            $counter++;
        }

        return $num;
    }