Laravelで簡単にExcelからのCSVを読み込んで処理したい。
Goodby, CSV
https://github.com/goodby/csv#requirements
composer.json のrequireに“goodby/csv”を追加。
"require": {
"goodby/csv": "*"
}
して、composerをアップデート
$ composer update
$ composer dump-autoload
モデル、ライブラリをuseして使う。
app/ItemCsv.php
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
use GoodbyCSVImportStandardLexer;
use GoodbyCSVImportStandardInterpreter;
use GoodbyCSVImportStandardLexerConfig;
class ItemCsv extends Model
{
protected $table = 'items';
public static function import($path){
$config = new LexerConfig();
$config->setToCharset("UTF-8");
$config->setFromCharset("sjis-win");
$interpreter = new Interpreter();
$tmp = array();
$interpreter->addObserver(function(array $row) use (&$tmp) {
$tmp[] = $row;
});
$lexer = new Lexer($config);
$lexer->parse($path, $interpreter);
dd($tmp);
}
}
あとは、何処かしらから。
ItemCsv::import($path_to_csv_file);
コメントを残す