//导出
//放在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. px、pt和em的区别

    (转载)http://www.1z1b.com/one-blog-a-week/px-em-pt/ 这里引用的是Jorux的“95%的中国网站需要重写CSS”的文章,题目有点吓人,但是确实是现在国内网 ...

  2. 模块打包工具webpack

    1.webpack的安装 1.1在安装node的基础上,npm install -g webpack(window版本,因为是全局安装,所以无所谓是哪个路径下) 1.2新建一个文件夹用于此项目  eg ...

  3. for-in循环

    //for in循环遍历var objs={"username":"hh","age":"20","sex&q ...

  4. ionic中generate page后module.ts报错的解决办法

    此问题出现在Ionic官方将版本从2.2升级到Ionic3以上之后, 在项目中generate page时,自动创建的module.ts就报错,如下: 解决办法如下: 1)将IonicModule替换 ...

  5. jQuery如何根据元素值删除数组元素

    用到的方法$.inArry(); $.inArray( value, array [, fromIndex ] ) value 任意类型 用于查找的值. array Array类型 指定被查找的数组. ...

  6. iOS交互h5— JavaScriptCore ---UIWebview

    JavaScriptCore这个框架,从而让web页面和本地原生应用交互起来非常方便,而且使用此框架可以做到Android那边和iOS相对统一, web前端 在三端交互中,web前端开发人员来定义,让 ...

  7. Intellij IDEA run coverage之覆盖率测试

    Intellij IDEA run coverage之覆盖率测试 idea 的coverage + 我们自己写的测试用例.最后看一下,我们要测的代码有没有测试到,这是一个不错的提高代码质量的方法. i ...

  8. VS2013平台安装Qt插件过程

    1.下载所需安装包: Qt5.3.Qt插件下载地址:http://qt-project.org/downloads. qt-vs-addin-1.1.11-opensource.exe 下载地址:ht ...

  9. 【PyQt5 学习记录】005:QMainWindow 及状态栏、菜单栏和工具栏

    #!/usr/bin/env python import sys from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QA ...

  10. 从零开始学习html(四)认识标签(第三部分)

    一.使用<a>标签,链接到另一个页面 <!DOCTYPE HTML> <html> <head> <meta http-equiv="C ...