kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

Excel 的列与数字转换

Excel 的列与数字转换

1
2
3
4
十进制   0 1 ... 9 10 11 ... 100 101
按十进制 A B ... Z BA BB ... BAA BAB // Z=26  ZZ=26*26        ZZZ=26*26*26
实际上   A B ... Z AA AB ... AAA AAB // Z=26  ZZ=26*26 + 26   ZZZ=26*26*26 + 26*26 + 26
	//                    转成公式  Z=26  ZZ=(Z)*26 + 26  ZZZ=(ZZ)*26 + 26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function id_to_xls($id)
{
	$k = '';
	while (true) {
		$k = chr($id % 26 + ord('A')) . $k;
		$id -= 26;
		if ($id < 0)
			break;
		$id = (int)($id / 26);
	}
	return $k;
}

function xls_to_id($xlsCol)
{
	$hh = 0;
	for ($i = 0; $i < strlen($xlsCol); $i ++) {    // ZZ = 26*26 + 26
		$hh = $hh * 26;               //      26*26
		$hh += ord($xlsCol[$i]) - ord('A') + 1; //      26
	}
	return $hh - 1;
}


for ($i = 0; $i < 26*26*26 + 26*26 + 26 + 10; $i ++) {
	$k = id_to_xls($i);
	$id = xls_to_id($k);
	echo $i, "\t", $k, "\t", $id, "\n";
}