年底处理数据的时候,需要将其他部门 Excel 的数据转换为指定格式的文本格式。
其中学到的两个操作,在这里记录一下:
- Excel 转换为文本文件
- 使用 PHP 脚本处理文本格式并输出
1. Excel 转换为文本文件
开发 Excel 另存为 txt 文本格式,如果文本中有中文,就会有编码问题,mac 下的文件导出为 UTF-16LE
的编码格式。
2. 使用 PHP 脚本处理文本格式并输出
txt 的文本格式示例:
1 3 2 4
1 3 2 4
期望得到的 txt 格式:
1 2 3 4 5
1 2 3 4 5
需要处理每一行的数据,每一行数据用 PHP_EOL
分割,然后用空格(可能多个)分割每一行数据,再去处理和写入。
$content = file_get_contents($filename);
$content = file_get_contents($content, 'UTF-8', 'UTF-16LE')
$rowArr = explode(PHP_EOL, $content);
foreach ($rowArr as $row) {
$arr = preg_split("/\s+/", trim($row);
// 处理对应格式,生成临时的数组
$tempArr = ....
echo implode(' ', $tempArr) . "\n";
}
通过 preg_split
使用正则匹配多个空格的情况,如果是固定的一个空格,explode
函数速度更快。
最后执行脚本命令 php filename.php > des.txt