使用PHP,如何將Excel樣式列名稱(如「CF」)轉換爲數字(CF = 84)? 這個問題特別適用於PHP。請不要用不同的語言來回答這個問題。在PHP中,如何將Excel樣式列名轉換爲數字?
回答
試試這些功能。
/**
* Convert Excel style column names into numbers.
* @param string $column Excel style column name like AA or CF
* @return integer Number with A being 1 and AA being 27
*/
function alpha2num($column) {
$number = 0;
foreach(str_split($column) as $letter){
$number = ($number * 26) + (ord(strtolower($letter)) - 96);
}
return $number;
}
/**
* Access array value with Excel style column name.
* @param array $array The array to access
* @param string $column Excel style column name like AA or CF
* @return mixed Value found at the column
*/
function alpha_col($array, $column){
$i = alpha2num($column) - 1;
return isset($array[$i]) ? $array[$i] : false;
}
[PHPExcel有點不同,如果你有興趣。](https://github.com/PHPOffice/PHPExcel/blob/1c8c2379ccf5ab9dd7cb46be965821d22173bcf4/Classes/PHPExcel/Cell.php#L790) –
我看到了,但對我來說它看起來像一個骯髒的方法,雖然強大。 – azBrian
我只是覺得你可能對他們對'ord'和'strtolower'性能影響的一些觀察感興趣。我同意你的方式看起來更整潔。 –
欺騙:http://stackoverflow.com/questions/5554369/php-how-to-output-list-like-this-aa-ab-ac-all-the-way-to-zzzy- zzzz-zzzza – nogad
可能的重複[Excel專欄名稱列名](http://stackoverflow.com/questions/10106465/excel-column-number-from-column-name) – MarianD
@nogad,可能但是當我在搜索對於解決方案,我沒有發現這個問題,因爲它是針對不同的實用程序。 – azBrian