繁体   English   中英

PHP Laravel 读取 csv

[英]PHP Laravel read csv

我有一个 CSV 文件,其中数据位于横向.ex:

name, test name
age, 20
gender,Male

其中第一列是标题,第二列是数据,我尝试使用laravel maatwebsite/Excel和读取文件后的响应,第一行作为标题。 nametest name )。

有什么方法可以使用 maatwebsite/Excel 在 laravel 中读取这种类型的 CSV 文件

你可以使用这个功能

public function readCSV($csvFile, $array)
{
    $file_handle = fopen($csvFile, 'r');
    while (!feof($file_handle)) {
        $line_of_text[] = fgetcsv($file_handle, 0, $array['delimiter']);
    }
    fclose($file_handle);
    return $line_of_text;
}
$csvFileName = "test.csv";
$csvFile = public_path('csv/' . $csvFileName);
$this->readCSV($csvFile,array('delimiter' => ','))

您不需要整个库。 PHP 有一个内置函数http://php.net/manual/en/function.str-getcsv.php

maatwebsite/Excel最佳软件包(csv创建和读取)

您的方法正确,因此毫无疑问,请use maatwebsite/Excel进行阅读

正如“在线托马斯”所说,有一个原生 PHP 函数,我发现像这样使用它最容易:

$csv = __DIR__ . '/data.csv';
$data = array_map('str_getcsv', file($csv));

警告:如果字段包含换行符,则不会产生所需的结果

如果您需要除“,”(或其他选项)以外的分隔符,请使用闭包:

$csv = __DIR__ . '/data.csv';
$data = array_map(function ($line) {
    return str_getcsv($line, ';');
}, file($csv));

对于 2022 年的读者:我现在使用的是: https ://github.com/spatie/simple-excel

由于 LazyCollections,工作就像一个没有内存使用的魅力

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM