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

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

?>

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

contact us