ThinkPHP3.2.3 结合 PHPExcel 导出

/**

*
* 导出Excel   调用
*/
function export(){
$xlsName = "Qrcode";
$xlsCell = array(
  array(‘qrid‘,‘序列‘),
  array(‘theonly‘,‘唯一码‘),
  array(‘tag‘,‘回复语模板‘),
  array(‘product_name‘,‘产品名称‘),
  array(‘click‘,‘点击量‘),
  array(‘qrcode_pic‘,‘二维码图片‘),
  array(‘add_time‘,‘创建时间‘)
);

//实例化表
$xlsModel = M(‘qrcode‘);
$xlsData = $xlsModel
  ->join(‘mr_reply ON mr_qrcode.replyid = mr_reply.id‘)
  ->join(‘mr_product ON mr_qrcode.pid = mr_product.id‘)
  ->select();
 $this->exportExcel($xlsName,$xlsCell,$xlsData);
}

//二维码数据--唯一码更新--验证
public function qrcodeyzmodify(){
$theonly = I(‘post.theonly‘);
$modifyid = I(‘post.modifyid‘);

$qrcode = M(‘qrcode‘);
$result = $qrcode->where("theonly =‘$theonly‘ AND qrid != ‘$modifyid‘ ")->find();
if($result != null){
  $this->ajaxReturn(1);
}else{
  $this->ajaxReturn(0);
}
  $this->display("edit");
}

/* 导出excel函数 */
public function exportExcel($expTitle,$expCellName,$expTableData){
  $xlsTitle = iconv(‘utf-8‘, ‘gb2312‘, $expTitle);//文件名称
  $fileName = $_SESSION[‘account‘].date(‘二维码数据_Ymd‘);//or $xlsTitle 文件名称可根据自己情况设定
  $cellNum = count($expCellName);
  $dataNum = count($expTableData);

  //实例化
  vendor("PHPExcel.PHPExcel");
  $objPHPExcel = new \PHPExcel();

$cellName = array(‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘,‘G‘);

$objPHPExcel->getActiveSheet()->getColumnDimension(‘A‘)->setWidth(‘5‘);//设置列宽
$objPHPExcel->getActiveSheet()->getColumnDimension(‘B‘)->setWidth(‘20‘);//设置列宽
$objPHPExcel->getActiveSheet()->getColumnDimension(‘C‘)->setWidth(‘15‘);//设置列宽
$objPHPExcel->getActiveSheet()->getColumnDimension(‘D‘)->setWidth(‘20‘);//设置列宽
$objPHPExcel->getActiveSheet()->getColumnDimension(‘E‘)->setWidth(‘10‘);//设置列宽
$objPHPExcel->getActiveSheet()->getColumnDimension(‘F‘)->setWidth(‘30‘);//设置列宽
$objPHPExcel->getActiveSheet()->getColumnDimension(‘G‘)->setWidth(‘20‘);//设置列宽

$objPHPExcel->getActiveSheet(0)->mergeCells(‘A1:‘.$cellName[$cellNum-1].‘1‘);//合并单元格
//$objPHPExcel->setActiveSheetIndex(0)->setCellValue(‘A1‘, $expTitle.‘ Export time:‘.date(‘Y-m-d H:i:s‘));
for($i=0;$i<$cellNum;$i++){
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].‘2‘, $expCellName[$i][1]);
}
// Miscellaneous glyphs, UTF-8
for($i=0;$i<$dataNum;$i++){
for($j=0;$j<$cellNum;$j++){
  $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), $expTableData[$i][$expCellName[$j][0]]);
}
}

header(‘pragma:public‘);
header(‘Content-type:application/vnd.ms-excel;charset=utf-8;name="‘.$xlsTitle.‘.xls"‘);
header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5‘);
$objWriter->save(‘php://output‘);
exit;
}

首先下载PHPExcel  放入ThinkPHP\Library\Vendor下面 可更改文件名为PHPExcel

PHPExcel下载地址:http://phpexcel.codeplex.com/

时间: 2024-08-30 07:36:33

ThinkPHP3.2.3 结合 PHPExcel 导出的相关文章

ThinkPHP3.2.3使用PHPExcel类操作excel导出excel

如何导入excel请看:ThinkPHP3.2.3使用PHPExcel类操作excel导入读取excel // 引入PHPExcel类 import("Org.Util.PHPExccel"); import("Org.Util.PHPExccel.Reader.Excel5"); // 创建Excel文件对象 $excel = new \PHPExcel(); // 设置文档信息,这个文档信息windows系统可以右键文件属性查看,.xls时有效$excel-&g

PHPExcel导出excel

如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312: $yourStr = mb_convert_encoding("gb2312", "UTF-8", $yourStr); 总结 php导出Excel php导入Excel PhpExcel使用说明 PhpExcel使用手册 1:第一推荐无比风骚的PHPExcel,官方网站: http://www.codeplex.com/PHPExcel 导入

PHPExcel导出Excel文件

error_reporting(0); require_once 'phpexcel/PHPExcel.php'; require_once 'phpexcel/PHPExcel/IOFactory.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("BillHong") ->setLastModifiedBy("BillHong")//创建

phpexcel导出超过26列解决方案

原文:phpexcel导出超过26列解决方案 将列的数字序号转成字母使用,代码如下:  PHPExcel_Cell::stringFromColumnIndex($i); // 从o,1,2,3,..开始,相应返回返回 A,B,C,...Z,AA,AB,...   将列的字母转成数字序号使用,代码如下:   PHPExcel_Cell::columnIndexFromString('AA'); 使用phpexcel导出excel文件的时候,发现报了一个错误,后来查询问题才发现是列数超过26列的问

关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法

原文:关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法 上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式. 这种显示很不人性化而且量多了修改起来也很麻烦. 这是因为Excel处理数字里默认数字太长会转化为科学计数法,处理起来很简单,我们在导出时把数字转为字符串,Excel就不会识别为数字了,也就不会显示为科学计数方式. 我的处理方式是在变量后面加个空格,简单方便. $usercode .= ' '; $

CodeIgniterCodeigniter+PHPExcel导出数据到Excel文件

解压压缩包里的Classes文件夹中的内容到application\libraries\目录下,目录结构如下:--application\libraries\PHPExcel.php--application\libraries\PHPExcel(文件夹)修改application\libraries\PHPExcel\IOFactory.php文件--将其类名从PHPExcel_IOFactory改为IOFactory,遵从CI类命名规则.--将其构造函数改为public $this->loa

让phpexcel导出数据0000

华彩CC网投国际转发:原文为 http://www.kubiji.cn/juhe-id9013.html 摘要:最近做一个php项目的时候,遇到一个问题.功能:使用phpexcel导出数据.问题描述:导出身份证后四位是0000这是因为在excel中如...最近做一个php项目的时候,遇到一个问题. 功能:使用phpexcel导出数据. 问题描述:导出身份证后四位是0000 这是因为在excel中如果在一个默认的格中输入或复制超长数字字符串,它会显示为科学计算法. 方法一:设置单元格为文本$obj

phpExcel导出excel加超级链接的实例代码[转]

phpexcel实现的导出excel文件的代码,且可以在excel文件中加入超级链接. 说明:PHPExcel的开发包Tests目录有详细使用实例.以下代码支持中文,注意文件编码,文件保存为utf-8. 完整代码: 代码示例: <?php//写excel //Include class require_once(‘Classes/PHPExcel.php’); require_once(‘Classes/PHPExcel/Writer/Excel2007.php’); $objPHPExcel

php利用phpexcel导出数据

php中利用phpexcel导出数据的实现代码.对phpexcel类库不熟悉的朋友,可以阅读下<phpexcel中文帮助手册>中的内容,具体实例大家可以phpexcel快速开发指南中的相关例子. 完整代码: public function export_data($data = array()) { # code... include_once(APP_PATH.'Tools/PHPExcel/Classes/PHPExcel/Writer/IWriter.php') ; include_on