oppara / csv_simple
CakePHP插件,用于处理csv数据
0.0.8
2016-01-11 23:05 UTC
Requires
- php: >=5.5
- composer/installers: *
Requires (Dev)
- phpunit/phpunit: >=3.7
This package is not auto-updated.
Last update: 2024-09-24 03:59:36 UTC
README
处理csv数据
需求
- PHP >= 5.5
- CakePHP >= 2.6
安装
composer.json
{
"require": {
"oppara/csv_simple": "*"
}
}
启用插件
app/Config/bootstrap.php
CakePlugin::load('CsvSimple');
或 CakePlugin::loadAll();
示例
<?php
App::uses('AppController', 'Controller');
App::uses('CsvImportComponent', 'CsvSimple.Controller/Component');
App::uses('CsvExportComponent', 'CsvSimple.Controller/Component');
class FooController extends AppController
{
public $components = [
'CsvSimple.CsvImport',
'CsvSimple.CsvExport',
];
public $uses = [
'Bar',
];
public function import()
{
if ($this->request->is('get')) {
return;
}
try {
$csv = Hash::get($this->request->data, 'Csv.file');
$this->CsvImport->headerRows = 1;
$gen = $this->CsvImport->createGenerator($csv);
$this->Bar->begin();
foreach ($gen as $idx => $row) {
$this->Bar->import($row);
}
$this->Bar->commit();
}
catch(Exception$e) {
$this->Bar->rollback();
$this->set('error', $e->getMessage());
}
}
public function download()
{
try {
$filename = date('Ymdhis') . '.tsv';
$this->CsvExport->delimiter = "\t";
$data = $this->Bar->find('all');
$this->CsvExport->download($data, $filename);
}
catch(Exception$e) {
$this->set('error', $e->getMessage());
}
}
public function export()
{
try {
$path = '/path/to/export.csv';
$fields = $this->Bar->getHeaderFields();
$this->CsvExport->setHeader($fields);
$data = $this->Bar->find('all');
$this->CsvExport->export($data, $path);
}
catch(Exception$e) {
$this->set('error', $e->getMessage());
}
}