//导出
//放在model层的类
<?phpnamespace frontend\models;
use yii\base\model;
/**
* @copyright (c) 2014 aircheng
* @file report.php
* @brief 导出excel类库
* @author dabao
* @date 2014/11/28 22:09:43
* @version 1.0.0
* @update 4.6
* @date 2016/9/15 23:30:28
* @author nswe
* @content 重构了写入方式和方法
*/
class Excal extends Model
{
//文件名
private $fileName = 'user';
//数据内容
private $_data = "";
//构造函数
public function __construct($fileName = '')
{
$this->setFileName($fileName);
}
//设置要导出的文件名
public function setFileName($fileName)
{
$this->fileName = $fileName;
}
/**
* @brief 写入内容操作,每次存入一行
* @param $data array 一维数组
*/
public function setTitle($data = array())
{
array_walk($data,function(&$val,$key)
{
$val = "<th style='text-align:center;color:#fff;font-size:12px;vnd.ms-excel.numberformat:@'>".$val."</th>";
});
$this->_data .= "<tr>".join($data)."</tr>";
}
/**
* @brief 写入标题操作
* @param $data array 数据
*/
public function setData($data = array())
{
array_walk($data,function(&$val,$key)
{
$val = "<td style='text-align:center;font-size:12px;vnd.ms-excel.numberformat:@'>".$val."</td>";
});
$this->_data .= "<tr>".join($data)."</tr>";
}
//开始下载
public function toDownload($data = '')
{
// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename='.$this->fileName.'_'.date('Y-m-d').'.xls');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0
$result = $data ? $data : "<table border='1'>".$this->_data."</table>";
echo <<< OEF
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
{$result}
</body>
</html>
OEF;
}} //把类放到model层之后 调用类开始导出
//导出excel public function actionExcel()
{
$sql="select * from shop";
$excel=Yii::$app->db->createCommand($sql)->queryAll();
//导出excel
$reportObj =new Excal('hotel');
$reportObj->setTitle(["ID","标题","简介","时间"]);
foreach($excel as $k=>$v)
{
$insertData=array($v['s_id'],$v['title'],$v['desc'],$v['time']);
$reportObj->setData($insertData);
}
$reportObj->toDownload();
}
//导出word
public function actionWord()
{
$sql = "select * from shop";
$data = Yii::$app->db->createCommand($sql)->queryAll();
header("content-type:text/html;charset=utf-8");
header ( 'Content-Disposition: attachment; filename="word.doc"' );
echo iconv("utf-8","gb2312","编号")."\t";
echo iconv("utf-8","gb2312","文章主题")."\t";
echo iconv("utf-8","gb2312","壁纸")."\t";
echo iconv("utf-8","gb2312","发表人")."\t";
echo iconv("utf-8","gb2312","时间")."\t";
echo iconv("utf-8","gb2312","文章内容")."\n"; foreach ($data as $key => $val)
{
echo iconv("utf-8","gb2312","$val[s_id]")."\t";
echo iconv("utf-8","gb2312","$val[title]")."\t";
echo iconv("utf-8","gb2312","$val[desc]")."\t";
echo iconv("utf-8","gb2312","$val[time]")."\n";
} }
//实时保存
public function actionKeep()
{ $data=Yii::$app->request->post();
//print_r($data);die;
$cookie=new \yii\web\cookie();
$cookie->name='goods'; //cookie的值
$cookie->expire=time()+3600; //存活的时间
$cookie->value=$data; //cookie的值
\Yii::$app->response->getCookies()->add($cookie);
}
//快速添加txt
public function actionKuai()
{
$txt = $_FILES['txt']['tmp_name'];
$str = file_get_contents("$txt");//将整个文件内容读入到一个字符串中
$str_encoding = mb_convert_encoding($str, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5');//转换字符集(编码)
$arr = explode("\r\n", $str_encoding);//转换成数组
//去除值中的空格
foreach ($arr as &$row)
{
$row = trim($row);
}
unset($row);
$time = time();
//得到后的数组
$info = Yii::$app->db->createCommand()->insert('shop',
array('title' => $arr[0],'desc' =>$arr[1],'time' =>$time))->execute();
if ($info)
{
return $this->redirect('?r=shop/shop'); } else {
return $this->redirect('?r=shop/adds');
} }

php 导出的更多相关文章

  1. premere cs4绿色版 安装 并且 视频导出 讲解

    最近室友,开始在玩视频剪辑,用的是 premere cs4 绿色版.让他遇到的最大问题也是我之前遇到的最大问题,就是视频导出. 所以我在这里上传一套自己的一点点经验吧. 接下来,我就总结一下 我是怎么 ...

  2. C# Excel导入、导出【源码下载】

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  3. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入

    系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...

  4. Hawk 5.1 数据导入和导出

    除了一般的数据库导入导出,Hawk还支持从文件导入和导出,支持的文件类型包括: Excel CSV(逗号分割文本文件) TXT (制表符分割文本文件) Json xml Excel 目前来看,Exce ...

  5. CRL快速开发框架系列教程十(导出对象结构)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  6. CRL快速开发框架系列教程九(导入/导出数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. C#向PPT文档插入图片以及导出图片

    PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...

  8. C#中将DataTable导出为HTML的方法

    今天我要向大家分享一种将DataTable导出为到HTML格式的方法.有时我们需要HTML格式的输出数据, 以下代码就可以帮助我们达到目的,. 首先,我们要绑定DataTable和 DataGridV ...

  9. C#使用Aspose.Cells导出Excel简单实现

    首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...

  10. 利用poi导出Excel

    import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r ...

随机推荐

  1. java面试④数据库部分

    2.3.1 数据库的分类及常用的数据库 数据库分为:关系型数据库和非关系型数据库 关系数据库:mysql,oracle,sqlServer 非关系型:redis,mongoDB 2.3.2 简单介绍一 ...

  2. 百度地图VUE-REACT

    针对目前火热的前端开发框架React和VUE,为了方便使用这两种框架开发的同学们能更好的使用百度地图JSAPI,我们分别开源了基于百度地图JSAPI的React组件库和VUE组件库.VUE:https ...

  3. angular 下载文件

    后台直接返回文件即可,以wcf为例:读取目录文件返回,或直接生成文件并返回. public Stream GetCodeSn() { return File.OpenRead("e:\\工作 ...

  4. [转] 如何选择正确的Hadoop版本

    Gartner:如何选择正确的Hadoop版本 这份报告的全名是<How to Choose the Right Apache Hadoop Distribution>.主要介绍了企业如何 ...

  5. ASP.NET Url 重写

    protected void Application_BeginRequest(object sender, EventArgs e) { string url = Request.AppRelati ...

  6. [PHP] 重回基础(IO流)

    IO流用来处理设备之间的数据传输 java对数据的操作是通过流的方式 java用于操作流的对象都在IO包中 流按操作数据分为两种:字节流与字符流 流按流向分为:输入流,输出流 字符流 抽象基类:Rea ...

  7. tcpcopy简介

    本文内容是整理自 王斌的博客(http://blog.csdn.net/wangbin579)和郑钧的博客(http://www.cnblogs.com/zhengyun_ustc),以便让自己可以有 ...

  8. github 上如何直接预览仓库中的html,搭建自己的主页

    前言:最近在写vue+element ui 的一些demo,就在github上建了个仓库来管理,但是希望能直接在github上就能预览效果,所以才有了这篇文章.转载请注明出处:https://www. ...

  9. IDEA 现有项目连接SVN

    前言:有时会先搭建好系统,准备好所有配置文件及公共类,然后才会从IDEA中将代码放到SVN中,这里正好讲述了如何从现有代码连接到SVN. 首先将该项目启动SVN管理 然后关联对应SVN地址 右键项目名 ...

  10. C# NPOI 导出Execl 工具类

    NPOI 导出Execl 自己单独工具类 详见代码 using System; using System.Collections.Generic; using System.Linq; using S ...