php 导出
//导出
//放在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 导出的更多相关文章
- premere cs4绿色版 安装 并且 视频导出 讲解
		
最近室友,开始在玩视频剪辑,用的是 premere cs4 绿色版.让他遇到的最大问题也是我之前遇到的最大问题,就是视频导出. 所以我在这里上传一套自己的一点点经验吧. 接下来,我就总结一下 我是怎么 ...
 - C# Excel导入、导出【源码下载】
		
本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...
 - ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入
		
系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...
 - Hawk  5.1 数据导入和导出
		
除了一般的数据库导入导出,Hawk还支持从文件导入和导出,支持的文件类型包括: Excel CSV(逗号分割文本文件) TXT (制表符分割文本文件) Json xml Excel 目前来看,Exce ...
 - CRL快速开发框架系列教程十(导出对象结构)
		
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
 - CRL快速开发框架系列教程九(导入/导出数据)
		
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
 - C#向PPT文档插入图片以及导出图片
		
PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...
 - C#中将DataTable导出为HTML的方法
		
今天我要向大家分享一种将DataTable导出为到HTML格式的方法.有时我们需要HTML格式的输出数据, 以下代码就可以帮助我们达到目的,. 首先,我们要绑定DataTable和 DataGridV ...
 - C#使用Aspose.Cells导出Excel简单实现
		
首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...
 - 利用poi导出Excel
		
import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r ...
 
随机推荐
- 一个快速搜索下载jar包的网站
			
在偶然的机会,我一个快速搜索下载jar包的网站.里面涵盖了所有的几乎全世界开源的jar包,感觉这个功能特别适合java.android开发者使用,共享出来給大家悄悄. 百度一下:manyjar,就可以 ...
 - AI小白快上车!这是发往高薪职位的车!
			
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云AI中心发表于云+社区专栏 AI到底有多火?看看下面这组数据: 腾讯研究院<2017全球人工智能人才白皮书>报告中提 ...
 - 第一章 面向对象软件工程与UML
			
这个OOAD讲的都是很抽象的东西!老师说这个在现在的学习中用到的不是很多,但是以后出去工作的时候就会常用到的. 首先来了解OOAD是讲什么的. OOAD:Object Oriented Analysi ...
 - .net Core学习笔记之MemoryCache
			
.NET Core支持多种不同的缓存,其中包括MemoryCache,它表示存储在Web服务器内存中的缓存: 内存中的缓存存储任何对象; 分布式缓存界面仅限于byte[] 1:在.net co ...
 - js 背景自动切换
			
//首页自动更换背景特效开始============================================ var curIndex = 0; //时间间隔(单位毫秒),每秒钟显示一张,数组 ...
 - 深复制与浅复制&&strong,copy修饰符总结
			
又是一个老生常谈的话题,可是貌似这个问题,好多ios开发工程师并不能理解透彻,所以简单记录分析一下深复制与浅复制的原理以及strong,copy修饰符的原理和使用. 一.深复制与浅复制 ...
 - Ubuntu16.04 LTS上安装Go1.10
			
原因 Ubuntu资源库上默认使用的是Go1.6.2版本,给最新版本代码编译带来了不少问题.本文就记录下在Ubuntu下直接安装Go最新版1.10的步骤. 准备工作 1.卸载已有版本 # 卸载已经安装 ...
 - JAVA中的泛型(Generic)
			
Java泛型(Generic)简介 泛型是jdk1.5版本以后推出来的,表示类型参数化,让java能更具有动态性一些,让类型能变成参数传递. 要我自己感觉的话,泛型本身没啥用,跟反射在一起用,就体现出 ...
 - LOJ#6491. zrq 学反演(莫比乌斯反演 杜教筛)
			
题意 题目链接 Sol 反演套路题? 不过最后一步还是挺妙的. 套路枚举\(d\),化简可以得到 \[\sum_{T = 1}^m (\frac{M}{T})^n \sum_{d \ | T} d \ ...
 - css伪类和伪元素的区别,:before和::before的区别
			
伪类用于选择DOM树之外的信息,或是不能用简单选择器进行表示的信息.前者包含那些匹配指定状态的元素,比如:visited,:active:后者包含那些满足一定逻辑条件的DOM树中的元素,比如:firs ...