الگوریتم آدرس دهی موقعیت ستون و ردیف در اکسل با PHP

ستون ردیف اکسل PHP – اگر تجربه کار با اکسل را داشته باشید متوجه می شوید که ردیف های بالا به صورت A1 , B1 و ستون ها به صورت A2 , B2 می باشد .
برای اینکه بتوانیم خیلی راحت تر موقعیت های آن را فقط با عدد تعیین کنیم این آموزش به کارتان می آید .
این آموزش پیش زمینه ای برای یادگیری خروجی اکسل در PHP می باشد .
تابع setHeader و setBody برای افزودن تیتر و متن
کد :
<?php function getChrByAscii($num){ $list = [ "A" => 1, "B" => 2, "C" => 3, "D" => 4, "E" => 5, "F" => 6, "G" => 7, "H" => 8, "I" => 9, "J" => 10, "K" => 11, "L" => 12, "M" => 13, "N" => 14, "O" => 15, "P" => 16, "Q" => 17, "R" => 18, "S" => 19, "T" => 20, "U" => 21, "V" => 22, "W" => 23, "X" => 24, "Y" => 25, "Z" => 26 ]; $chr = ""; $max = 26; $repeat = 0; while ($max < $num) { $num -= $max; $repeat++; } if($repeat){ $chr .= getChrByAscii($repeat); } foreach($list as $key=>$ls){ if($num === $ls){ $chr .= $key; break; } } return $chr; } function setHeader(int $number = 1){ $stuffix = 1; return getChrByAscii($number) . $stuffix; } function setBody(string $header , int $number = 1){ $header = preg_replace("/\d/", "", $header); $body = $header . $number + 1; return $body; } echo setHeader(28); // AB1 echo setBody(setHeader(28) , 1); // AB2 ?>
ارسال نظر