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,
]);
导出user表的用户名和密码,自定义表头
theCsv::export([
'table' => 'user',
'fields' => ['username', 'password'],
'header' => ['账户', '密码'],
]);
导出user表的用户名和密码,不要表头
theCsv::export([
'table' => 'user',
'fields' => ['username', 'password'],
'header' => 'no',
]);
导出user表有效用户,使用condition,condition请参考http://www.yiiframework.com/doc-2.0/yii-db-query.html#where()-detailtheCsv::export([
'table' => 'user',
'condition' => ['status' => 1],
]);
导出user表有效用户,使用orderby和limittheCsv::export([
'table' => 'user',
'condition' => ['status' => 1],
'orderby' => 'id DESC',
'limit' => 10,
]);
自定义SQLtheCsv::export([
'sql' => 'SELECT * FROM user',
]);
自定义SQL,绑定参数theCsv::export([
'sql' => 'SELECT * FROM user WHERE id = :id AND status = :status',
'bind' => [':id' => 1, ':status' => 1],
]);
使用QuerytheCsv::export([
'query' => (new \yii\db\Query)->from('user'),
]);
使用reader 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资源,则默认行为从下载变为直接写入该资源
]);