【问题标题】:Import CSV file with extension yii2-csv-importer导入扩展名为 yii2-csv-importer 的 CSV 文件
【发布时间】:2017-12-30 20:59:48
【问题描述】:

我不确定如何使用扩展程序 "yii2-csv-importer"。 我需要导入 app/web/uploads/mod-key.csv 目录中的 CSV 文件

我的表/模型 (BASE) 和 csv 文件具有以下结构:

'id'
'date'
'Pan
'key'
'goal'
'accomplished'
'Weight'
'points'
'update'

我的 ACTION 看起来如何?

更新

use ruskid\csvimporter\CSVImporter;
use ruskid\csvimporter\CSVReader;
use ruskid\csvimporter\ImportInterface;
use ruskid\csvimporter\MultipleImportStrategy;
use ruskid\csvimporter\BaseImportStrategy;


$importer = new CSVImporter();

$importer->setData(new CSVReader([
'filename' => Yii::$app->request->baseUrl."/uploads/mod-key.csv",
'tableName' => Base::tableName(),
'fgetcsvOptions' => [
'delimiter' => ';'
]
]));

$numberRowsAffected = $importer->import(new MultipleImportStrategy([
'tableName' => ModelName::tableName(), // change your model names accordingly
'configs' => [
[
    'attribute' => 'id',
    'value' => function($line) {
        return $line[0];
    }
],
[
    'attribute' => 'date',
    'value' => function($line) {
        return $line[1];
    }
]
// put your remaining columns here
],
]));

【问题讨论】:

  • 有人可以帮忙吗?
  • 修复(见更新)
  • 我认为filename属性应该是文件系统路径,所以Yii::$app->request->baseUrl不返回文件系统路径,它返回url
  • 我把它改成:Yii::getAlias('@webroot')."/uploads/mod-key.csv",

标签: yii2 import-csv


【解决方案1】:
use ruskid\csvimporter\CSVImporter;
use ruskid\csvimporter\CSVReader;
use ruskid\csvimporter\ImportInterface;
use ruskid\csvimporter\MultipleImportStrategy;
use ruskid\csvimporter\BaseImportStrategy;


$importer = new CSVImporter();

$importer->setData(new CSVReader([
'filename' => Yii::$app->request->baseUrl."/uploads/mod-key.csv",
'tableName' => Base::tableName(),
'fgetcsvOptions' => [
'delimiter' => ';'
]
]));

$numberRowsAffected = $importer->import(new MultipleImportStrategy([
'tableName' => ModelName::tableName(), // change your model names accordingly
'configs' => [
[
    'attribute' => 'id',
    'value' => function($line) {
        return $line[0];
    }
],
[
    'attribute' => 'date',
    'value' => function($line) {
        return $line[1];
    }
]
// put your remaining columns here
],
]));

【讨论】:

    猜你喜欢
    • 2011-07-14
    • 1970-01-01
    • 2020-02-24
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多