Magento2读取上传的csv文件

时间:2016-06-14 10:14:02

标签: file-upload

我上传了CSV文件,但问题是我不知道如何在Magento2中读取上传的csv文件的数据。 请帮助我。 提前谢谢。

1 个答案:

答案 0 :(得分:3)

你可以像在Magento 1中那样做。在Magento 1你会使用 new Varien_File_Csv但在Magento 2中,您可以使用\Magento\Framework\File\Csv执行相同操作。您可以使用以下代码。

__construct()注入以下课程:

protected $_fileCsv;

public function __construct(
   \Magento\Backend\App\Action\Context $context,
   \Magento\Framework\Module\Dir\Reader $moduleReader,
   \Magento\Framework\File\Csv $fileCsv
) {
    $this->_moduleReader = $moduleReader;
    $this->_fileCsv = $fileCsv;
    parent::__construct($context); // If your class doesn't have a parent, you don't need to do this, of course.
}

然后你可以像这样使用它:

// This is the directory where you put your CSV file.
$directory = $this->_moduleReader->getModuleDir('etc', 'Vendor_Modulename'); 

// This is your CSV file.
$file = $directory . '/your_csv_file_name.csv';

if (file_exists($file)) {
    $data = $this->_fileCsv->getData($file);
    // This skips the first line of your csv file, since it will probably be a heading. Set $i = 0 to not skip the first line. 
    for($i=1; $i<count($data); $i++) {
        var_dump($data[$i]); // $data[$i] is an array with your csv columns as values.
    }
}