forked from nathalie/pedi2
40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Helpers;
|
|
|
|
use Illuminate\Support\Facades\Log;
|
|
use Iterator;
|
|
use League\Csv\CannotInsertRecord;
|
|
use League\Csv\Exception;
|
|
use League\Csv\InvalidArgument;
|
|
use League\Csv\Reader;
|
|
use League\Csv\Writer;
|
|
|
|
class CsvHelper
|
|
{
|
|
public static function getRecords($filePath): Iterator {
|
|
$csv = Reader::createFromPath(resource_path($filePath));
|
|
try {
|
|
$csv->setDelimiter("|");
|
|
$csv->setEnclosure("'");
|
|
$csv->setHeaderOffset(0);
|
|
return $csv->getRecords();
|
|
} catch (InvalidArgument|Exception $e) {
|
|
Log::error($e->getMessage());
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static function generarCsv($filePath, $contenido, $headers = null): void
|
|
{
|
|
try {
|
|
$writer = Writer::createFromPath(resource_path($filePath), 'w');
|
|
if ($headers) {
|
|
$writer->insertOne($headers);
|
|
}
|
|
$writer->insertAll($contenido);
|
|
} catch (CannotInsertRecord $e) {
|
|
Log::error($e->getMessage(), $e->getTrace());
|
|
}
|
|
}
|
|
}
|