通过 PHP / Laravel 和 re-save 编辑现有导出的 csv 文件
Edit an existing exported csv file via PHP / Laravel and re-save
我正在使用 Laravel-Excel 导出包含 header 和页脚行的 CSV 文件。 header 和页脚行只有 2-3 列,但是 body 行有多个额外的列 - 导致在 header 和页脚的末尾有额外的尾随逗号。
由于 Laravel-Excel 包无法删除这些额外的逗号,我需要在导出文件后通过代码以某种方式打开它,从 header 和页脚中删除尾随的逗号行,然后 re-save 文件,让我的用户下载最终结果。
所以我要找的是:
实际:
Header,20211021,065529,,,,,,,,,,,,,,,,,,,,,,
Footer,49,,,,,,,,,,,,,,,,,,,,,,,
必填:
Header,20211021,065529
Footer,49
所以流程如下:
- 使用 Laravel-Excel
生成导出文件
- 将生成的文件保存到服务器
- 打开生成的文件,确定最后一行
- 删除第 1 行的结尾逗号 (header)
- 删除最后一行(页脚)的结尾逗号
- Overwrite/save 现有的 csv 文件
任何关于我如何处理这件事的帮助都会非常有帮助!
我认为最简单的方法是使用简单的 php。通过 rtrim
很容易做到这一点:
$contents = file('file.csv');
foreach ($contents as &$line) {
$line = rtrim($line, ",\r\n");
}
file_put_contents('file.csv', implode("\n", $contents));
我正在使用 Laravel-Excel 导出包含 header 和页脚行的 CSV 文件。 header 和页脚行只有 2-3 列,但是 body 行有多个额外的列 - 导致在 header 和页脚的末尾有额外的尾随逗号。
由于 Laravel-Excel 包无法删除这些额外的逗号,我需要在导出文件后通过代码以某种方式打开它,从 header 和页脚中删除尾随的逗号行,然后 re-save 文件,让我的用户下载最终结果。
所以我要找的是:
实际:
Header,20211021,065529,,,,,,,,,,,,,,,,,,,,,,
Footer,49,,,,,,,,,,,,,,,,,,,,,,,
必填:
Header,20211021,065529
Footer,49
所以流程如下:
- 使用 Laravel-Excel 生成导出文件
- 将生成的文件保存到服务器
- 打开生成的文件,确定最后一行
- 删除第 1 行的结尾逗号 (header)
- 删除最后一行(页脚)的结尾逗号
- Overwrite/save 现有的 csv 文件
任何关于我如何处理这件事的帮助都会非常有帮助!
我认为最简单的方法是使用简单的 php。通过 rtrim
很容易做到这一点:
$contents = file('file.csv');
foreach ($contents as &$line) {
$line = rtrim($line, ",\r\n");
}
file_put_contents('file.csv', implode("\n", $contents));