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类型参数

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数据导出扩展的更多相关文章

  1. [moka同学摘录]Yii2.0开发初学者必看

    想要了解更多YII,PHP方面内容,请关注本博客. 基础总结 1.修改默认控制器/方法 yii默认是site控制器,可以在web.php中设置$config中的'defaultRoute'='xxxx ...

  2. [moka同学笔记]Yii2.0 modal的使用

    第一次使用,时候不明白什么原理,大概用了几次后,才模模糊糊搞清楚原来是怎么一回事,现在就把写过的代码,贴在下边. 1.在视图文件中, 第一步首先在index.php文件中 做了一个a链接的按钮 调用了 ...

  3. [moka同学笔记]yii2.0表单的使用

    1.创建model   /biaodan.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/08/05 * Tim ...

  4. [moka同学笔记]yii2.0缓存

    1.控制器中CacheDemoController.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/06/29 ...

  5. [moka同学笔记]yii2.0查询数据库

      一. [:id占位符]使用 $results = Test::findBySql($sql,array(':id'=>'1 or 1=1))->all()   二. [id=1]  选 ...

  6. Layui Excle/csv数据导出

    官方文档的数据是这样的 依赖 Layui 2.4版本以上 layui.use([ 'table'], function(){ var table=layui.table; table.exportFi ...

  7. [moka同学笔记]Yii2.0验证码

    1.Model中Code.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/07/25 * Time: 10:48 ...

  8. [moka同学笔记]yii2.0小物件的简单使用(第二种方法)

    1.在widgets/TestWidget.php中 <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/08/05 * T ...

  9. [moka同学笔记]yii2.0小物件的简单使用(第一种方法)

    这是第一种方法,还有另一种方法,其实都差不多. 1.在创建widgets\HelloWiget.php <?php /** * Created by PhpStorm. * User: Admi ...

随机推荐

  1. 画蛇添足-记spring3 hibernate4整合时遇到问题的处理办法

    最近在来到一个新公司,使用新的spring3,hibernate4框架,在使用注解事务总是不起作用. 首先看配置文件,然后再讲解. 首先是springmvc-servlet.xml,这个配置文件是se ...

  2. Spring3系列5-Bean的基本用法

    Spring3系列5-Bean的基本用法 本篇讲述了Bean的基本配置方法,以及Spring中怎样运用Bean. 主要内容如下: 一.      Spring中Bean的相互引用 二.      Sp ...

  3. Xamarin.Forms中的ListView的ItemTrapped事件与ItemSelected事件的区别

    今天对Xamarin.Forms中的ListView的两个事件(ItemTrapped和ItemSelected)做了小小的研究,发现有以下几点区别: 1.ItemTrapped事件会优先被触发. 2 ...

  4. IIS7 php wordpress 中文url 标签tag中文URL404解决方法

    新建重写规则: <rule name="ChineseURL" stopProcessing="true"> <match url=" ...

  5. Oracle数据库入门——高水位线详解

    一.什么是水线(High Water Mark)? 所有的oracle段(segments,在此,为了理解方便,建议把segment作为表的一个同义词) 都有一个在段内容纳数据的上限,我们把这个上限称 ...

  6. IIS7/IIS7.5 二级域名伪静态设置方法

    转载地址:http://www.admin5.com/article/20120107/402582.shtml

  7. 自制Console线(已测试CISCO3560可用)

    D9的顺序是5口在上,4口在下.从右到左分别是1-5,6-9. 5 4 3 2 1 o o o o o o o o o 9 8 7 6 用万用表量出D9的口的对应颜色.然后按照下面的表.把颜色填写上. ...

  8. 读书笔记_Effective_C++_条款四十三:学习处理模板化基类的名称

    背景是这样的,有两个不同的公司,然后想设计一个MessageSender,为这两个公司发送不同的消息,既支持明文发送SendClearText,也支持密文发送SendEncryptedText.一种思 ...

  9. 【Java设计模式】单例模式

    ### 1. 概述> 单例模式是确保某一个类中有且只有一个实例. ----------### 2. 饿汉式单例``` javapublic class SingletonInstance { p ...

  10. android手机出现sqlite3 not found的解决方法

    解决方法如下: 1.如果/system目录为不可读写的,需要挂载为读写: C:\Users\easteq>adb shell root@android:/ # mount -o remount, ...