الگوریتم آدرس دهی موقعیت ستون و ردیف در اکسل با 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
?>
ارسال نظر