satthi / csv-combine-plugin-for-cakephp
CakePHP CsvCombine
v3.2.8
2017-09-05 06:39 UTC
Requires
- cakephp/cakephp: ~3.0
Requires (Dev)
- cakephp/cakephp-codesniffer: dev-master
- phpunit/phpunit: *
README
CsvCombine 插件用于 CakePHP3
PHP 版本 5,CakePHP 版本 3
更新历史
- 2015/05/01 为 CakePHP3 重构
- 2016/05/17 添加固定长度支持
特点
- 数组与 CSV・TSV 文件之间的转换功能
- Cake1.3 或 2 中,文件的上传或保存都由系统管理,但我自己并没有使用,所以已经删除了...
- 支持固定长度了!
准备
※ 已支持 composer
"satthi/csv-combine-plugin-for-cakephp": "*"
※ 如果不使用 composer 安装,请将 CsvCombine 放置在 plugins 目录中
在 bootstrap 中添加以下内容
Plugin::load('CsvCombine', ['autoload' => true]);
Csv 使用方法
<?php namespace App\Controller; use Cake\Core\Configure; use CsvCombine\Form\CsvImportForm; class CsvController extends AppController { public function initialize() { parent::initialize(); $this->loadComponent('CsvCombine.CsvExport'); } public function export() { $list = [ [ 'test1', 'test2', 'test3', ], [ 'test4', 'test5', 'test6', ], ]; /* *@array $list 出力のための配列(二次元配列が基本) *@param $file_name 出力ファイル名(デフォルトはexport.csv) *@param $delimiter 区切り文字の設定(デフォルトは",") *@param $directory 一時保存ディレクトリ(デフォルトはTMP,最終的にファイルを削除をする) *@param $export_encoding 出力するファイルのエンコード(デフォルトはSJIS-win *@param $array_encoding 入力する配列のエンコード(デフォルトはUTF-8 */ return $this->CsvExport->export($list); } public function import() { $import = new CsvImportForm(); $file = TMP . 'test.csv'; $column = [ 'key1', 'key2', 'key3', ]; /* *@array file ファイルパス(必須 *@array $column カラム名を並び順に(必須 *@param $delimiter 区切り文字を設定 (デフォルトは","で"\t"や"|"などを指定することが可能) *@param $array_encoding 出力する配列のエンコード(デフォルトはUTF-8 *@param $import_encoding 入力するファイルのエンコード(デフォルトはSJIS-win */ $result = $import->loadDataCsv($file,$column); debug($result); exit; } }
固定长度使用方法
<?php namespace App\Controller; use Cake\Core\Configure; use CsvCombine\Form\FixedLengthImportForm; class CsvController extends AppController { public function initialize() { parent::initialize(); $this->loadComponent('CsvCombine.FixedLengthExport'); } public function export() { $list = [ [ 'あいう', 'いいい', 'uuu', ], [ 'あいう', 'いいい', 'uuu', ], [ 'あいう', 'いいい', 'uuu', ], ]; $fixed_options = [ 8, 10, 6 ]; //makeでファイル作成のみ /* * export 固定長の出力アクション * * @array $list 出力のための配列(二次元配列が基本) * @array $fixed_options 出力のための固定長の設定(各カラムのバイト数) * @param $file_name 出力ファイル名(デフォルトはexport.txt) * @param $line_feed_code 改行コード(デフォルトは\r\n) * @param $directory 一時保存ディレクトリ(デフォルトはTMP,最終的に削除をする) * @param $export_encoding 出力するファイルのエンコード(デフォルトはSJIS-win * @param $array_encoding 入力する配列のエンコード(デフォルトはUTF-8 */ //$this->FixedLengthExport->make($list,$fixed_options); $this->FixedLengthExport->export($list,$fixed_options); } public function import() { $filename = TMP . 'test.txt'; $column_list = [ ['name' => 'column1', 'length' => 8], ['name' => 'column2', 'length' => 10], ['name' => 'column3', 'length' => 6], ]; $import = new FixedLengthImportForm(); /* * @text $fileName 固定長テキストファイ * @array $column_list 各カラム情報(name:カラム名,length:バイト数 デフォルトは空配列 空時には列の数だけ0から連番を振る) * @param $line_feed_code 改行コード(デフォルトは\r\n) * @param $array_encoding 出力するする配列のエンコード(デフォルトはUTF-8 * @param $import_encoding 入力するテキストのエンコード(デフォルトはSJIS-win */ $result = $import->loadData($filename, $column_list); debug($result); exit; } }
许可协议
MIT 许可协议
版权所有 (c) 2011 Fusic Co., Ltd. (http://fusic.co.jp)
在此特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的个人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得软件的人进行上述行为,但受以下条件约束
上述版权声明和本许可协议应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他原因,无论该责任是否源自、因之而起或与之相关软件或软件的使用或任何其他方式。
作者
Satoru Hagiwara