рдХрд╕реНрдЯрдо рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╕рдордп:
class CSVExcel extends Excel {
protected $delimiter = ';';
}
рдФрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░:
CSVExcel::load('file.csv')->export('xls');
рд╕реАрдорд╛рдВрдХрдХ рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рд╕рдореНрдорд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЖрдк рджреЛ рдЪреАрдЬреЛрдВ рдХреЛ рдорд┐рд▓рд╛ рд░рд╣реЗ рд╣реИрдВ: рдлрд╛рдЗрд▓ рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рдлреЗрдХрд╛рдбреЗред
рдЖрдк рдореБрдЦреМрдЯрд╛ рд╡рд░реНрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ $delimiter рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИред
рдЖрдк рдЬреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ:
class MyOwnFile extends ExcelFile {
protected $delimiter = ';';
public function getFile()
{
return storage_path('exports') . '/file.csv';
}
}
class ExampleController {
public function __construct(MyOwnFile $file)
{
$this->file = $file;
}
public function import()
{
// if using fileHandlers:
$this->file->handleImport();
// If you want to fetch inside the controller (which I wouldn't recommend)
$this->file->get();
}
// or if you are using Laravel 5.0, you could use the method injection:
public function import(MyOwnFile $file)
{
$file->handleImport();
}
}
рдпрджрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рднреНрд░рдорд┐рдд рдереЗ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрд▓-рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ :)
рдлрд╝рд╛рдЗрд▓ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝: http://www.maatwebsite.nl/laravel-excel/docs/import#injection
рдлреНрд▓рд╛рдИ рдкрд░ рд╕реАрдПрд╕рд╡реА рдХреЗ рд▓рд┐рдП рдбрд┐рд▓реАрдореАрдЯрд░ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВред рдЕрд╕рд▓ рдореЗрдВ рдореИрдВ рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ "рдПрдХреНрд╕реЗрд▓ :: рд▓реЛрдб" рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдмреЗрд╕рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдореБрдЭреЗ .XLS, .XLSX рдФрд░ CSV рдХреЛ defsult рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдлрд▓рддрд╛ рдорд┐рд▓реА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ csv.php рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╕реАрдорд╛рдВрдХрдХ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд▓реЗрдирд╛ рд╣реИ рдЬреИрд╕реЗ рдЗрдирдкреБрдЯ рдкрд╛рдЗрдкреНрд╕рд╛рдЗрди, рдЯреИрдм рдЗрддреНрдпрд╛рджрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рддреЛ рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВ? рдХреГрдкрдпрд╛ рдорджрдж рдХрд░реЗред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк setDelimiter()
рдЬреИрд╕реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреЗрдЦреЗрдВ: https://github.com/Maatwebsite/Laravel-Excel/blob/master/src/Maatwebsite/Excel/Readers/LaravelExcelReader.php#L271
рдареАрдХ рд╣реИред рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ :
$results = Excel::load('uploads/' . $filename, function($reader) {
})->setDelimiter("|")->get();
рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХрд▓ рдХреЙрд▓рдо рдореЗрдВ рд╕рднреА рдорд╛рдиреЛрдВ рдХреЛ рдкрдврд╝ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ "рдкрд╛рдЗрдк рдбрд┐рд▓реАрдореАрдЯрд░" рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдорджрдж рдХрд░реЗред
рдореБрдЭреЗ рднреА рдпрд╣реА рддрдХрд▓реАрдлрд╝ рд╣реИред Laravel 4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдпрд╣рд╛рдБ рдореЗрд░реЗ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдХреЛрдб рд╣реИ:
public function uploadData()
{
$file = Input::file('data')->getRealPath();
\Excel::load($file, function($reader) {
echo "<pre>";
$reader->setDelimiter('|');
print_r($reader->get());
});
}
рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдкрд╛рдЗрдк рд╕реЗрдкрд░реЗрдЯрд░ рдкрд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдПрдХ рд▓рдВрдмреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдирдореВрдирд╛ рд╣реИ:
Maatwebsite\Excel\Collections\RowCollection Object
(
[title:protected] => Worksheet
[items:protected] => Array
(
[0] => Maatwebsite\Excel\Collections\CellCollection Object
(
[title:protected] =>
[items:protected] => Array
(
[upc_numberitem_numberqty_availunit_pricedescriptioncolorqty_on_ponext_avail_dt] => 040176424354|53607-3037|0|14.50|PACK-N-GO DUFFELS 20?"|BIRDS ON A WIRE/LEAF GREEN||
)
)
[1] => Maatwebsite\Excel\Collections\CellCollection Object
(
[title:protected] =>
[items:protected] => Array
(
[upc_numberitem_numberqty_availunit_pricedescriptioncolorqty_on_ponext_avail_dt] => 040176414850|53607-3054|0|14.50|PACK-N-GO DUFFELS 20?"|BLACK/BLACK/BLACK||
)
)
)
рдХреНрдпрд╛ рдореБрдЭрд╕реЗ рдпрд╣рд╛рдВ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкрд╛рдЗрдк рд╡рд░реНрдг рдкрд░ рдкрд╛рд░реНрд╕ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ?
рдЕрдЧрд░ рдореИрдВ delimiter
рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ config/csv.php
рдмрджрд▓рддрд╛ рд╣реВрдВ, рддреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрд╛рд░реНрд╕ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ setDelimiter()
рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?
рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╕реАрдорд╛рдВрдХрдХ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:
Excel::setDelimiter('|')->load(...);
рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗ рд░рд╣рд╛ рд╣реИ:
iconv() expects parameter 1 to be string, object given
рддреНрд░реБрдЯрд┐ Shared/String.php рдореЗрдВ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ?
https://github.com/Maatwebsite/Laravel-Excel/issues/382
рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдлреНрд▓рд╛рдИ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ:
Config::set('excel::csv.delimiter, '|');
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рд▓рд╛рд░рд╡реЗрд▓ 5.1):
Config::set('excel.csv.delimiter', '|');
рдареАрдХ рд╣реИ рдпрд╣ рддрд░реАрдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддрд░реАрдХрд╛ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?
Excel::load($file->getPathName(), function($reader){
$reader->setDelimiter(';')
dd($reader->get());
});
рдЪреВрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкрд╣рд▓реЗ рд╣реА рд▓реЛрдб рд╣реЛ рдЪреБрдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрдм рдФрд░ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдареАрдХ рд╣реИ... рдФрд░ рдЕрдЧрд░ рдореБрдЭреЗ рдПрдХ рд╣реА рдЕрдиреБрд░реЛрдз рдкрд░ 2 рд╕реАрдПрд╕рд╡реА рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдкреНрд░рдпреЛрдЧ ';' рд╕реАрдорд╛рдВрдХрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рджреВрд╕рд░рд╛ ',' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ 2 рдмрд╛рд░ рдХреЙрдиреНрдлрд┐рдЧ :: рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдХреЛрдИ рдЕрдиреНрдп рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ?
рд╣рд╛рдБ, рджреЛ рдХреЙрдиреНрдлрд┐рдЧ :: рд╕реЗрдЯ рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдВрд╕реНрдХрд░рдг 3 рдореЗрдВ рд▓реЛрдб рдХреЗ рдмрд╛рдж рд╕реАрдорд╛рдВрдХрдХ рдмрджрд▓рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рд╣рдо рдЕрднреА рддрдХ рдХрд╣реАрдВ рднреА рд░рд┐рд▓реАрдЬ рдХреЗ рдХрд░реАрдм рдирд╣реАрдВ рд╣реИрдВред
рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж
рдореИрдВ рд▓рд╛рд░реНрд╡рд╛ 4.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбрд┐рд▓реАрдореАрдЯрд░ рдХреЙрд▓рдо рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдХреЙрд▓рдо рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рдЦрд╛рд▓реА рд╣реИ
рд▓реИрд░рд╛рд╡реЗрд▓ 4 рдореЗрдВ, рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдлреНрд▓рд╛рдИ рдкрд░ рдбрд┐рд▓реАрдореАрдЯрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
Config::set('excel::csv.delimiter', '|');
рд╕рдВрджрд░реНрдн: https://laravel.com/docs/4.2/packages#package -configuration
рдУрд╡рд░рд░рд╛рдЗрдб рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рд░ рдЪреАрдЬ config/Excel.php рдореЗрдВ рдореМрдЬреВрдж рд╣реИ
'csv' => array(
/*
|--------------------------------------------------------------------------
| Delimiter
|--------------------------------------------------------------------------
|
| The default delimiter which will be used to read out a CSV file
|
*/
'delimiter' => ';',
/*
|--------------------------------------------------------------------------
| Enclosure
|--------------------------------------------------------------------------
*/
'enclosure' => '',
/*
|--------------------------------------------------------------------------
| Line endings
|--------------------------------------------------------------------------
*/
'line_ending' => "\r\n",
/*
|--------------------------------------------------------------------------
| setUseBom
|--------------------------------------------------------------------------
*/
'use_bom' => false
),
рдПрдХреНрд╕реЗрд▓ рдХреЗ рдКрдкрд░ рдбрд┐рд▓реАрдореАрдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВ :: рдЗрд╕ рддрд░рд╣ рд▓реЛрдб рдХрд░реЗрдВред рд▓рд╛рд░реНрд╡рд╛ 5.3 . рдкрд░ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХрд╛рдо
Excel::setDelimiter('|');
рдПрдХреНрд╕реЗрд▓ :: рд▓реЛрдб ($ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, рдлрд╝рдВрдХреНрд╢рди ($ рд░реАрдбрд░) {
foreach ($reader->toArray() as $row) {
$data[] = $row;
}
print_r($data);
});
@medamineDev config/Excel.php рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╣реИред рдЬрдм рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрд▓рдЧ рд╕реЗрдкрд░реЗрдЯрд░/рдбрд┐рд▓реАрдореАрдЯрд░ рд╡рд╛рд▓реА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
рдирдорд╕реНрддреЗ, рдЯреЗрдмреБрд▓реЗрдЯрд░ рдбрд┐рд▓реАрдореАрдЯрд░ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ?
рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ /t
@jediscript рдзрдиреНрдпрд╡рд╛рдж рд▓реЗрдХрд┐рди /t рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╕реАрдорд╛рдВрдХрдХ 1 рд╡рд░реНрдг рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
@ yailperalta-santex рдЖрдк рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдХрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рд╢рд╛рдпрдж рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп http://php.net/manual/en/function.fgetcsv.php рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
@yailperalta-santex
рд╕реАрдПрд╕рд╡реА рдореЗрдВ рдЯреИрдм рдбрд┐рд▓реАрдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ "\t"
рдпрд╣ рджреЛрд╣рд░реЗ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рди рдХрд┐ рдПрдХрд▓ рдЙрджреНрдзрд░рдгреЛрдВ рдореЗрдВ
рддреЛ config/excel.php
рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛
'delimiter' => "\t",
$data = Excel::setDelimiter("t")->load(storage_path().'/uploads/imports/data.csv')->get();
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@yailperalta-santex
рд╕реАрдПрд╕рд╡реА рдореЗрдВ рдЯреИрдм рдбрд┐рд▓реАрдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
"\t"
рдпрд╣ рджреЛрд╣рд░реЗ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рди рдХрд┐ рдПрдХрд▓ рдЙрджреНрдзрд░рдгреЛрдВ рдореЗрдВ
рддреЛ
config/excel.php
рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛'delimiter' => "\t",