[moka同学摘录]Yii2 csv数据导出扩展
yii2-thecsv(Yii2框架csv数据导出扩展)
github: https://github.com/13552277443/yii2-thecsv
1、安装
运行 php composer.phar require m35/thecsv
或
添加 "m35/thecsv": "*"
2、使用
<?php
use 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数据导出扩展的更多相关文章
- [moka同学摘录]Yii2.0开发初学者必看
想要了解更多YII,PHP方面内容,请关注本博客. 基础总结 1.修改默认控制器/方法 yii默认是site控制器,可以在web.php中设置$config中的'defaultRoute'='xxxx ...
- [moka同学笔记]Yii2.0 modal的使用
第一次使用,时候不明白什么原理,大概用了几次后,才模模糊糊搞清楚原来是怎么一回事,现在就把写过的代码,贴在下边. 1.在视图文件中, 第一步首先在index.php文件中 做了一个a链接的按钮 调用了 ...
- [moka同学笔记]yii2.0表单的使用
1.创建model /biaodan.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/08/05 * Tim ...
- [moka同学笔记]yii2.0缓存
1.控制器中CacheDemoController.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/06/29 ...
- [moka同学笔记]yii2.0查询数据库
一. [:id占位符]使用 $results = Test::findBySql($sql,array(':id'=>'1 or 1=1))->all() 二. [id=1] 选 ...
- Layui Excle/csv数据导出
官方文档的数据是这样的 依赖 Layui 2.4版本以上 layui.use([ 'table'], function(){ var table=layui.table; table.exportFi ...
- [moka同学笔记]Yii2.0验证码
1.Model中Code.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/07/25 * Time: 10:48 ...
- [moka同学笔记]yii2.0小物件的简单使用(第二种方法)
1.在widgets/TestWidget.php中 <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/08/05 * T ...
- [moka同学笔记]yii2.0小物件的简单使用(第一种方法)
这是第一种方法,还有另一种方法,其实都差不多. 1.在创建widgets\HelloWiget.php <?php /** * Created by PhpStorm. * User: Admi ...
随机推荐
- Etl之HiveSql调优(设置map reduce 的数量)
前言: 最近发现hivesql的执行速度特别慢,前面我们已经说明了left和union的优化,下面咱们分析一下增加或者减少reduce的数量来提升hsql的速度. 参考:http://www.cnbl ...
- 百度地图api根据定位获取附近商家(只获取屏幕内)
根据中心点坐标计算出屏幕2个点(一个最低经纬度,一个最高经纬度),判断这两个点中间的所有坐标的商家..考虑屏幕分辨率之类 移动地图中心点变动,如何异步刷新,判断商家是否已经存在..等... 百度地图a ...
- Android 自定义Drawable
1.使用BitmapShader实现图片圆角 public class CornerDrawable extends Drawable { private Paint mPaint; private ...
- 使用UIKit制作卡牌游戏(二)ios游戏篇
转自朋友Tommy 的翻译,自己只翻译了第三篇教程. 译者: Tommy | 原文作者: Matthijs Hollemans写于2012/07/06 原文地址: http://www.raywend ...
- mongodb备份恢复
注意:在备份文件存放目录的选择上有这样一个条件,文件存放目录不管有多深,都只能有它一个文件:(即除了备份文件之外只能存在文件夹,这个条件约束其整个目录树) 数据备份 : /mongodump --ho ...
- new/delete和malloc/free的区别
通俗易懂版本:http://zhidao.baidu.com/question/86185100 1 new/delete和malloc/free最大区别是对对象的理解. 如果你使用 Foo* foo ...
- SimpleDateFormatter Java中的用法
转载 http://www.cnblogs.com/jayzee/p/3171195.html 有一点需要补充的是,SimpleDateFormatter是有时制的 如果hh:mm,则选用的是12小时 ...
- 爬虫技术 -- 进阶学习(八)模拟简单浏览器(附c#代码)
由于最近在做毕业设计,需要用到一些简单的浏览器功能,于是学习了一下,顺便写篇博客~~大牛请勿喷,菜鸟练练手~ 实现界面如下:(简单朴素版@_@||) button_go实现如下: private vo ...
- VC2013的一个bug
前段时间在尝试使用一个C++的GUI库nana.这个库最大的特点在于使用现代C++风格去编写GUI程序,而不需要使用大量的比较丑陋的代码(如MFC中的各种宏),或者其它的非C++元素.这是一个比较新的 ...
- Tips5:通过 alt+鼠标左键 来完全展开或收缩层级
通过 alt+点击 可以完全地展开或关闭unity中的各种层级关系,包括Hierarchy视图 或 Project视图中的. 上图中,第一次点击没有按住ALT键,可以发现子项目并没有被展开,而第二次是 ...