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 ...
随机推荐
- [笔记] print函数进阶
1.1print(values=None,sep='',end='\n',file=sys.stdout,flush=False) 参数: values:输出到控制台的string sep:设置输 ...
- Window环境配置Mongodb
Mongodb这几天也了解了一下,今天配置了下环境,从今天开始学下Mongodb数据库. 一.下载 在这个网址中选择要下载的开发环境https://www.mongodb.com/download-c ...
- Swift基础语法之变量函数
import Foundation //变量声明使用 //使用 let 来声明常量,使用 var 来声明变量 常量只能为它赋值一次 let name="cuiyw"; var ag ...
- SQL Server拾遗
1.判断数据库中是否存在一个表 if exists( select * from sysobjects where id=OBJECT_ID(N'[dbo].[Users]') ) drop tabl ...
- Jsp&Servlet入门级项目全程实录第5讲
惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.修改功能实现 dao public int gradeAdd(Connection con,Grade grade ...
- Eclipse的版本命名
Eclipse自3.1开始使用木星的卫星作为版本名,例如: 木卫一:伊奥 lo木卫二:欧罗巴 Europa木卫三:伽倪墨得斯 Ganymede木卫四:卡利斯托 Callisto .... Eclips ...
- JS实现继承的几种方式以及优缺点(转载)
前言 JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一.那么如何在JS中实现继承呢?让我们拭目以待. JS继承的实现方式 既然要实现继承,那么首先我们得有一个父类,代码如下: // 定义一个 ...
- AGC008E:Next or Nextnext
传送门 考虑转化成图论问题,\(i\) 向 \(p_i\) 连边,那么合法方案一定是形成了若干个简单环或自环 考虑一个环内的情况: 如果 \(a_i=p_i\),那么 \(i\) 向 \(a_i\) ...
- MySql基本学习知识点:
1.Mysql的简介: (1):常识: MySQL是一种关系数据库管理系统,是一种开源软件 由瑞典MySQL AB公司开发,2008年1月16号被Sun公司收购.2009年,SUN又被Oracle收购 ...
- 【代码笔记】iOS-ios7 StatusBar
代码: RootViewController.m #import "RootViewController.h" @interface RootViewController () @ ...