[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 ...
随机推荐
- mysql隔离级别
MySQL/InnoDB定义的4种隔离级别: Read Uncommited 可以读取未提交记录. Read Committed (RC) 针对当前读,RC隔离级别保证对读取到的记录加锁 (记录锁), ...
- python string.py 源码分析 三:maketrans
l = map(chr, xrange(256)) #将ascii转为字符串 _idmap = str('').join(l) del l # Construct a translation stri ...
- android SDK Manager 上载失败
android SDK Manager 下载失败如题,利用android SDK Manager 无法下载各个版本的SDK,是最近无法连接上谷歌的服务器吗?我用了网上说的在C:\WINDOWS\sys ...
- C、C++编译,链接,extern链接
//b.cpp #inlcude <iostream> void b() { std::cout<<"fun b"; } //a.cpp extern vo ...
- 安卓开发笔记——自定义HorizontalScrollView控件(实现QQ5.0侧滑效果)
对于滑动菜单栏SlidingMenu,大家应该都不陌生,在市场上的一些APP应用里经常可以见到,比如人人网,FaceBook等. 前段时间QQ5.0版本出来后也采用了这种设计风格:(下面是效果图) 之 ...
- BW对应后台表[转]
数据源对应后台表 (2012-01-04 20:08:57) 转载▼ 标签: 杂谈 分类: SAP MM Data Sources Tables Purchasing 2LIS_02_SCL EKKO ...
- JavaScript的9个陷阱及评点
1. 最后一个逗号 如这段代码,注意最后一个逗号,按语言学角度来说应该是不错的(python的类似数据类型辞典dictionary就允许如此).IE会报语法错误,但语焉不详,你只能用人眼从几千行代码中 ...
- Android View绘制过程
Android的View绘制是从根节点(Activity是DecorView)开始,他是一个自上而下的过程.View的绘制经历三个过程:Measure.Layout.Draw.基本流程如下图: per ...
- 左倾堆(二)之 C++的实现
概要 上一章介绍了左倾堆的基本概念,并通过C语言实现了左倾堆.本章是左倾堆的C++实现. 目录1. 左倾堆的介绍2. 左倾堆的图文解析3. 左倾堆的C++实现(完整源码)4. 左倾堆的C++测试程序 ...
- SSL握手步骤【收藏】
http://www.codeweblog.com/ssl-handshake-process-of-interaction-and/ SSL to send a message in the fol ...