Разделитель CSV Laravel-Excel не работает

У меня та же проблема. Использование 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, файл анализируется правильно, и результат выглядит так:

Maatwebsite\Excel\Collections\RowCollection Object
(
[title:protected] => Worksheet
[items:protected] => Array
(
[0] => Maatwebsite\Excel\Collections\CellCollection Object
(
[title:protected] =>
[items:protected] => Array
(
[upc_number] => 40176424354
[item_number] => 53607-3037
[qty_avail] => 0
[unit_price] => 14.5
[description] => PACK-N-GO DUFFELS 20?"[color] => BIRDS ON A WIRE/LEAF GREEN
[qty_on_po] =>
[next_avail_dt] =>
)

)

[1] => Maatwebsite\Excel\Collections\CellCollection Object
(
[title:protected] =>
[items:protected] => Array
(
[upc_number] => 40176414850
[item_number] => 53607-3054
[qty_avail] => 0
[unit_price] => 14.5
[description] => PACK-N-GO DUFFELS 20?"[color] => BLACK/BLACK/BLACK
[qty_on_po] =>
[next_avail_dt] =>
)

)

Почему это не работает с помощью setDelimiter() метод?

3

Решение

попробуй это.

Config::set('excel.csv.delimiter', '|');

для более подробной информации
https://github.com/Maatwebsite/Laravel-Excel/issues/262

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]