1、composer.json的require项加上 "m35/thecsv": "*"
然后执行 php require m35/thecsv
2、参数列表
(1)string类型:直接指定表名称,下载该表所有数据,自动生成表字段名称。
(2)array类型:
table:数据表名称 (string)
fields:要导出的表字段 (array)
exceptFields:是否是排除字段模式,默认false(bool)
header:自定义表头(array)
condition:导出表条件(mixed) 请参考http://www.yiiframework.com/doc-2.0/yii-db-query.html#where()-detail
limit:限制数量(int)
offset:偏移(int)
orderby:排序(mixed) 请参考http://www.yiiframework.com/doc-2.0/yii-db-querytrait.html#orderBy()-detail
name:自定义文件名(string)
sql:自定义SQL语句(string)
bind:与sql结合绑定参数(array)
target:导出目录,如果设置target,则默认行为由下载变为保存文件到服务器(string)
fp:直接导出数据到指定的资源(resource)
data:自定义导出数据(array)
query:Yii2框架Query类型对象(yii\db\Query) 请参考http://www.yiiframework.com/doc-2.0/yii-db-query.html
reader:Yii2框架DataReader类型对象(yii\db\DataReader) 请参考http://www.yiiframework.com/doc-2.0/yii-db-datareader.html
3、使用示例
(1)string类型,后面的use不写出来了,只写第一个,下同
use m35\thecsv\theCsv; theCsv::export('tableName');
(2)array类型
导出数据表完整数据
theCsv::export('user');导出user表的用户名和密码
theCsv::export([ 'table' => 'user', 'fields' => ['username', 'password'], ]);导出user表除status字段外的所有数据
theCsv::export([ 'table' => 'user', 'fields' => ['status'], 'exceptFields' => true, ]);
theCsv::export([ 'table' => 'user', 'fields' => ['username', 'password'], 'header' => ['账户', '密码'], ]);
theCsv::export([ 'table' => 'user', 'fields' => ['username', 'password'], 'header' => 'no', ]);
theCsv::export([ 'table' => 'user', 'condition' => ['status' => 1], ]);
theCsv::export([ 'table' => 'user', 'condition' => ['status' => 1], 'orderby' => 'id DESC', 'limit' => 10, ]);
theCsv::export([ 'sql' => 'SELECT * FROM user', ]);
theCsv::export([ 'sql' => 'SELECT * FROM user WHERE id = :id AND status = :status', 'bind' => [':id' => 1, ':status' => 1], ]);
theCsv::export([ 'query' => (new \yii\db\Query)->from('user'), ]);
theCsv::export([ 'reader' => \Yii::$app->getDb()->createCommand('SELECT * FROM user')->query(), ]);
theCsv::export([ 'data' => [ ['a', 'b', 'c'], ['A', 'B', 'C'], ], ]);
theCsv::export([ 'data' => [ ['a', 'b', 'c'], ['A', 'B', 'C'], ], 'name' => 'data.csv', ]);
theCsv::export([ 'data' => [ ['a', 'b', 'c'], ['A', 'B', 'C'], ], 'name' => 'data.csv', // 自定义导出文件名称 'target' => './', // 如果指定导出目录,则默认行为从下载变为保存到指定目录 ]);
$fp = fopen('./data.csv', 'w'); theCsv::export([ 'data' => [ ['a', 'b', 'c'], ['A', 'B', 'C'], ], 'fp' => $fp, // 如果指定fp资源,则默认行为从下载变为直接写入该资源 ]);