使用 PHPExcel 库导入带有制表符分隔的 CSV 文件

Bla*_*ack 2 php csv phpexcel phpexcelreader yii2-advanced-app

我正在尝试使用 PHPExcel 库导入 CSV 文件。我的 CSV 文件使用\ttab作为分隔符。

因此,当我尝试在屏幕上打印结果时,每个逗号都被视为新单元格,就像这样 在此输入图像描述

但实际上我需要将每一行导出为一行数据,并为每个制表符分隔符用引号( )分隔,就像这个一样 在此输入图像描述

这是我在控制器中用于读取和写入数据的代码:

$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";
                    }
                }
        }
Run Code Online (Sandbox Code Playgroud)

如何读取带\t分隔符的 CSV 文件,并将每一行设置为一行?

Mar*_*ker 6

这是您需要考虑的加载文件的代码。

查看PHPExcel 文档中 CSV 阅读器可用的方法...您会发现有一个setDelimiter()方法,允许您说使用 atab而不是,

$objReader = PHPExcel_IOFactory::createReader('CSV')
    ->setDelimiter("\t");
$objPHPExcel = $objReader->load($myFileName);
Run Code Online (Sandbox Code Playgroud)