thinkphp5.0数据导出excel表格
第一步、创建Model类文件(名称自定)

第二步、在类中写入以下代码
<?php
namespace Admin\admin\model;
use think\Model;
class MarkModel extends Model{
//导出预约信息
public function outExcel1(){
$del=@implode(",",$_POST["del"]);
if($del!=""){
$art = db('messga');
$where['id'] = array('in',$del);
$rs = $art->where($where)->order('id desc')->select();
foreach ($rs as $v){
$excdata[]=array(
'id'=>$v["id"],
'names'=>$v["names"],
'phone'=>$v["phone"],
'email'=>$v["email"],
'cid'=>$v["cid"],
'companynames'=>$v["companynames"],
'tel'=>$v["tel"],
'num'=>$v["num"],
'p_names'=>$v["p_names"],
'dates'=>date('Y-m-d H:i:s',$v["dates"])
);
}
}else{
$art = db('message');
$rs = $art->order('id desc')->select();
foreach($rs as $v){
$excdata[]=array(
'id'=>$v["id"],
'names'=>$v["names"],
'phone'=>$v["phone"],
'email'=>$v["email"],
'cid'=>$v["cid"],
'companynames'=>$v["companynames"],
'tel'=>$v["tel"],
'num'=>$v["num"],
'p_names'=>$v["p_names"],
'dates'=>date('Y-m-d H:i:s',$v["dates"])
);
}
//echo "<script>alert ('请选中要导出的数据'); history.go(-1);</script>";
}
//数组信息根据自己项目而定
$expCellName=array(
array('id','序号'),
array('names','姓名'),
array('phone','电话'),
array('email','邮箱'),
array('companynames','公司名称'),
array('num','人数'),
array('cid','公开课'),
array('p_names','职务'),
array('tel','座机'),
array('dates','提交日期')
);
$this->exportExcel('留言信息',$expCellName,$excdata);
exit;
}
/**
* 导出操作
* 参数1:$expTitle :导出excel的标题
* 参数2:$expCellName:导出到表格中需要显示每一列的标题 如下:
* $expCellName=array(
* 参数三:$expTableData : 需要导出的表中数据
*
*
*/
public function exportExcel($expTitle='', $expCellName, $expTableData){
//引入PHPExcell类
import('PHPExcel.Classes.PHPExcel');
import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);
//文件名称
$fileName = $expTitle.date('_YmdHis');
//or $xlsTitle 文件名称可根据自己情况设定
$cellNum = count($expCellName);
$dataNum = count($expTableData);
vendor("phpoffice.phpexcel.Classes.PHPExcel");
$objPHPExcel = new \PHPExcel();
$cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
// 设置水平垂直居中
$objPHPExcel->getActiveSheet()->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getActiveSheet()->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
//设置excel表格 从 A1 到 AB1 这一行的字体加粗
$objPHPExcel->getActiveSheet()->getStyle('A1:AB1')->getFont()->setBold(true);
// 设置某一行的高度 1.2.3
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(20);
//J 、 K列为文本 (输入什么就是什么,不会随着excel系统格式变化)
// $objPHPExcel->getActiveSheet()->getStyle('J')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
// $objPHPExcel->getActiveSheet()->getStyle('K')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
//设置某一列的宽度
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(25);
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(45);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(105);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('K')->setWidth(15);
$objPHPExcel->getActiveSheet()->getColumnDimension('N')->setWidth(20);
// 设置某一行的高度 1.2.3
$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(20);
// 隐藏某一列
//$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setVisible(false);
//$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setVisible(false);
//$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);
//$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setVisible(false);
//合并单元格
// $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] . '1', $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 + 2), $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;
}
}
3.写个自定义方法调用(字段换成自己的)
thinkphp5.0数据导出excel表格的更多相关文章
- 使用POI实现数据导出Excel表格
package cn.sh.bzt.kwj.action; import java.io.IOException; import java.io.OutputStream; import java.t ...
- 【前端】将前台table数据导出excel表格
1.首先引用jquery以及table2excel <script type="text/javascript" src="js/jquery.table2exce ...
- 一个php文件就可以把数据库的数据导出Excel表格
数据库内容太多,复制粘贴太麻烦?那就用代码实现把,把代码写好了,导出还不容易吗,访问即可导出. excel.php <?php error_reporting(E_ALL ^ E_DEPRECA ...
- 数据导出Excel表格
public String exportInfoFr(String path,String name,String startdate,String enddate,SysUser user){ Li ...
- 百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里?
好多人在问:如何将百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里? 现在,很多人都在网络上找商家,联系业务. 百度地图里有很多的商家联系 ...
- 导出数据到Excel表格
开发工具与关键技术:Visual Studio 和 ASP.NET.MVC,作者:陈鸿鹏撰写时间:2019年5月25日123下面是我们来学习的导出数据到Excel表格的总结首先在视图层写导出数据的点击 ...
- NPOI_winfrom导出Excel表格(二)(直接打开Excel软件,将数据填充在当前的sheet中)
//// 存储路径弹框选择 SaveFileDialog saveDialog = new SaveFileDialog(); saveDialog.DefaultExt = "xls&qu ...
- Java操作Jxl实现导出数据生成Excel表格数据文件
实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...
- Python导出数据到Excel表格-NotImplementedError: formatting_info=True not yet implemented
在使用Python写入数据到Excel表格中时出现报错信息记录:“NotImplementedError: formatting_info=True not yet implemented” 报错分析 ...
随机推荐
- leaflet常用插件库
1.常用地图切换加载(osm.google.baidu.gaode.tianditu.etc)https://github.com/htoooth/Leaflet.ChineseTmsProvider ...
- 深入理解document.referrer的用法
前言 在JavaScript中,document对象有很多属性,其中有3个与对网页的请求有关的属性,它们分别是URL.domain和referrer. URL属性包含页面完整的URL,domain属性 ...
- fluent求平均温度、最高低温度和平均传热系数【转载】
摘自<ANSYS FLUENT技术基础与工程应用:流动传热与环境污染控制领域> 一.平均温度的计算: 双击导航栏中Result下方的Report进入Report任务页面,双击其中的Volu ...
- 2018-2019 20165226 Exp9 Web安全基础
2018-2019 20165226 Exp9 Web安全基础 目录 一.实验内容说明及基础问题回答 二.实验过程 Webgoat准备 XSS攻击 ① Phishing with XSS 跨站脚本钓鱼 ...
- 在Kaggle免费使用GPU训练自己的神经网络
Kaggle上有免费供大家使用的GPU计算资源,本文教你如何使用它来训练自己的神经网络. Kaggle是什么 Kaggle是一个数据建模和数据分析竞赛平台.企业和研究者可在其上发布数据,统计学者和数据 ...
- R Shiny app | 交互式网页开发
网页开发,尤其是交互式动态网页的开发,是有一定门槛的,如果你有一定的R基础,又不想过深的接触PHP和MySQL,那R的shiny就是一个不错的选择. 现在R shiny配合R在统计分析上的优势,可以做 ...
- pip安装报错Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-e_k8hq6a/pynacl/
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-e_k8hq6a/pyn ...
- CMU Database Systems - Query Processing
Query Model Query处理有三种方式, 首先是Iterator model,这是最基本的model,又称为volcano,pipeline模式 他是top-down的模式,通过next函数 ...
- xhr.js:108 Refused to set unsafe header "Cookie"
https://stackoverflow.com/questions/7210507/ajax-post-error-refused-to-set-unsafe-header-connection/ ...
- [Eclipse]已经写好的代码怎样切换为unix下的换行符?
问题:使用eclise提交文件到github,每行文件后面都有^M字符 切换换行符的显示格式, 但是这样只能对新文件起作用,修改旧文件: