首页 > 代码库 > [moka同学摘录]Yii2 csv数据导出扩展
[moka同学摘录]Yii2 csv数据导出扩展
yii2-thecsv(Yii2框架csv数据导出扩展)
github: https://github.com/13552277443/yii2-thecsv
1、安装
运行 php composer.phar require m35/thecsv
或
添加 "m35/thecsv": "*"
2、使用
<?phpuse m35\thecsv\theCsv;theCsv::export(‘tableName‘); // return true if success
3、参数及示例
3.0、参数列表
3.0.1、string类型
直接指定表名称,下载该表所有数据,自动生成表字段名称。
3.0.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()-detaillimit
:限制数量(int
)offset
:偏移(int
)orderby
:排序(mixed
) 请参考http://www.yiiframework.com/doc-2.0/yii-db-querytrait.html#orderBy()-detailname
:自定义文件名(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.htmlreader
:Yii2框架DataReader类型对象(yii\db\DataReader
) 请参考http://www.yiiframework.com/doc-2.0/yii-db-datareader.html
3.1、示例:导出数据表(以user表为例子)
3.1.1、导出数据表完整数据
theCsv::export(‘user‘);
3.1.2、导出user表的用户名和密码
theCsv::export([ ‘table‘ => ‘user‘, ‘fields‘ => [‘username‘, ‘password‘],]);
3.1.3、导出user表除status字段外的所有数据
theCsv::export([ ‘table‘ => ‘user‘, ‘fields‘ => [‘status‘], ‘exceptFields‘ => true,]);
3.1.4、导出user表的用户名和密码,自定义表头
theCsv::export([ ‘table‘ => ‘user‘, ‘fields‘ => [‘username‘, ‘password‘], ‘header‘ => [‘账户‘, ‘密码‘],]);
3.1.5、导出user表的用户名和密码,不要表头
theCsv::export([ ‘table‘ => ‘user‘, ‘fields‘ => [‘username‘, ‘password‘], ‘header‘ => ‘no‘,]);
3.1.6、导出user表有效用户,使用condition
theCsv::export([ ‘table‘ => ‘user‘, ‘condition‘ => [‘status‘ => 1],]);
condition请参考http://www.yiiframework.com/doc-2.0/yii-db-query.html#where()-detail
3.1.7、导出user表有效用户,使用orderby和limit
theCsv::export([ ‘table‘ => ‘user‘, ‘condition‘ => [‘status‘ => 1], ‘orderby‘ => ‘id DESC‘, ‘limit‘ => 10,]);
3.1.8、自定义SQL
theCsv::export([ ‘sql‘ => ‘SELECT * FROM user‘,]);
3.1.9、自定义SQL,绑定参数
theCsv::export([ ‘sql‘ => ‘SELECT * FROM user WHERE id = :id AND status = :status‘, ‘bind‘ => [‘:id‘ => 1, ‘:status‘ => 1],]);
3.1.10、使用Query
theCsv::export([ ‘query‘ => (new \yii\db\Query)->from(‘user‘),]);
3.1.11、使用reader
theCsv::export([ ‘reader‘ => \Yii::$app->getDb()->createCommand(‘SELECT * FROM user‘)->query(),]);
3.2、示例:导出数据
theCsv::export([ ‘data‘ => [ [‘a‘, ‘b‘, ‘c‘], [‘A‘, ‘B‘, ‘C‘], ],]);
3.3、示例:其他
3.3.1
theCsv::export([ ‘data‘ => [ [‘a‘, ‘b‘, ‘c‘], [‘A‘, ‘B‘, ‘C‘], ], ‘name‘ => ‘data.csv‘,]);
3.3.2
theCsv::export([ ‘data‘ => [ [‘a‘, ‘b‘, ‘c‘], [‘A‘, ‘B‘, ‘C‘], ], ‘name‘ => ‘data.csv‘, // 自定义导出文件名称 ‘target‘ => ‘./‘, // 如果指定导出目录,则默认行为从下载变为保存到指定目录]);
3.3.3
$fp = fopen(‘./data.csv‘, ‘w‘);theCsv::export([ ‘data‘ => [ [‘a‘, ‘b‘, ‘c‘], [‘A‘, ‘B‘, ‘C‘], ], ‘fp‘ => $fp, // 如果指定fp资源,则默认行为从下载变为直接写入该资源]);
很全面哦原文地址:http://www.yiichina.com/extension/464
[moka同学摘录]Yii2 csv数据导出扩展
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。