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";
}

Excel getOldCalculatedValue 忽略计算值

https://cloud.tencent.com/developer/ask/sof/111247127

https://blog.csdn.net/weixin_36251052/article/details/115960992

XLS文件中的每个单元格都包含一个预先计算的值以及公式。如果我可以让PHPExcel在读取文件时不尝试计算公式(而只是按原样使用预先计算的值)

使用 getOldCalculatedValue() 将返回为在MS Excel中生成的公式单元格计算的最后一个值(即使这样,也可以在MS Excel中禁用计算,然后不会设置此值). PHPExcel生成的文件不会填充此值,因此它只提供默认值0.

一般来说,在尝试评估公式值时,应始终使用getCalculatedValue()

https://www.codenong.com/4584963/

如果不确定单元格的内容(包括值或公式),我建议您首先检查该单元格是否具有公式,然后进行复制-相应地粘贴。在这种情况下,getOldCalculatedValue()非常有用。这是一个例子:

1
2
3
4
5
$code = $sheet->getCell('A'.$y)->getValue();
if (strstr($code, '=') == true) {
	$code = $sheet->getCell('A'.$y)->getOldCalculatedValue();
}
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$l, $code);

对于大型数据集,getCalculatedValue() 函数确实很麻烦,并且需要大量内存才能正确执行。

https://www.codenong.com/5983845/

https://blog.csdn.net/weixin_30770783/article/details/98541565

getValue() 获取的是公式本身

而通过 getCalculatedValue()会有对象     getFormattedValue() 获取到的是公式计算后的值

PHPExcel execl转化成csv

https://m.php.cn/faq/458865.html

1
2
3
4
5
6
$filename = "myexcel.xlsx";
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($filename);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
$objWriter->save(str_replace('.xlsx', '.csv', $filename));