Импортировать CSV-файл с разделителями табуляции с помощью PHPExcel lib

Я пытаюсь импортировать CSV-файл с помощью PHPExcel lib. В моем CSV-файле в качестве разделителя используется \t или вкладка.

Поэтому, когда я пытаюсь распечатать результат на своем экране, каждая запятая отображается как новая ячейка, как это  введите описание изображения здесь

Но на самом деле мне нужно экспортировать данные в одну строку для каждой строки и разделить их знаком кавычек (") для каждого разделителя табуляции, как этот  введите описание изображения  здесь

Это мой код в Контроллере для чтения и записи данных:

$worksheet = $objPHPExcelDetail->getActiveSheet();
        foreach ($worksheet->getRowIterator() as $row) {
                echo '<pre>';
                echo 'Row number: ' . $row->getRowIndex() . "\r\n";

                $cellIterator = $row->getCellIterator();
                $cellIterator->setIterateOnlyExistingCells(false); // Loop all cells, even if it is not set     

                foreach ($cellIterator as $cell) {
                    if (!is_null($cell)) {
                        echo 'Cell: ' . $cell->getCoordinate() . ' - ' . $cell->getValue() . "\r\n";
                    }
                }
        }

Как я могу читать CSV-файл с разделителем \t и помещать его в одну строку для каждой строки?


person Blackjack    schedule 05.07.2017    source источник
comment
Если все, что вам нужно, это прочитать этот CSV-файл, fgetcsv() может быть лучше.   -  person Maerlyn    schedule 05.07.2017
comment
@Maerlyn, да, ты прав. Я использовал его раньше, я использовал PHPExcel для csv, потому что я также импортирую файл Excel на одной странице.   -  person Blackjack    schedule 06.07.2017


Ответы (1)


Это код для загрузки файла, о котором вам нужно подумать.

Посмотрите на методы, доступные для CSV Reader, в Документация PHPExcel .... вы обнаружите, что существует setDelimiter (), который позволяет указать использовать tab вместо ,.

$objReader = PHPExcel_IOFactory::createReader('CSV')
    ->setDelimiter("\t");
$objPHPExcel = $objReader->load($myFileName);
person Mark Baker    schedule 05.07.2017
comment
Да ты прав. Это есть в документации, я пробовал, и это работает. Спасибо за помощь. - person Blackjack; 06.07.2017