ThinkPHP中,运用PHPExcel,将数据库导出到Excel中
1.将PHPExcel插件放在项目中,本人位置是ThinkPHP文件夹下,目录结构如下/ThinkPHP/Library//Vendor/...
2.直接根据模型,配置三个变量即可使用。
/**
* Excel导出
* @param $fileName(文件名)
* @param $headArr (表头)
* @param $data (每一行的数据)
* @throws \PHPExcel_Exception
* @throws \PHPExcel_Reader_Exception
*/
function getExcel($fileName, $headArr, $data)
{
include_once(THINK_PATH . "Library/Vendor/phpexcel/PHPExcel.php");
include_once(THINK_PATH . "Library/Vendor/phpexcel/PHPExcel/Writer/Excel2007.php");
include_once(THINK_PATH . "Library/Vendor/phpexcel/PHPExcel/Writer/Excel5.php");
include_once(THINK_PATH . "Library/Vendor/phpexcel/PHPExcel/IOFactory.php");
if (empty($data) || !is_array($data)) {
die("data must be a array");
}
if (empty($fileName)) {
exit;
}
$date = date("Y_m_d", time());
$fileName .= "_{$date}.xlsx";
//创建新的PHPExcel对象
$objPHPExcel = new \PHPExcel();
$objProps = $objPHPExcel->getProperties();
//设置表头
$key = ord("A");
$key2 = ord("A");
$colum2 = '';
$objActSheet = $objPHPExcel->getActiveSheet();
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
foreach ($headArr as $v) {
$colum = chr($key);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum2 . $colum . '1', $v);
if ($key < 90) {
$key += 1;
} else {
$key = ord("A");
$colum2 = chr($key2);
$key2++;
}
}
//exit;
$column = 2;
foreach ($data as $key => $rows) { //行写入
$span = ord("A");
$span2 = ord("A");
$j2 = '';
foreach ($rows as $keyName => $value) {// 列写入
$j = chr($span);
//$objActSheet->setCellValue($j.$column, $value);
//把每个单元格设置成分文本类型
//dump($j2.$j.$column);
$objActSheet->setCellValueExplicit($j2 . $j . $column, $value, \PHPExcel_Cell_DataType::TYPE_STRING);
if ($span < 90) {
$span += 1;
} else {
$span = ord("A");
$j2 = chr($span2);
$span2++;
}
}
$column++;
}
// exit;
$fileName = iconv("utf-8", "gb2312", $fileName);
//重命名表
$objPHPExcel->getActiveSheet()->setTitle('Simple');
//设置活动单指数到第一个表,所以Excel打开这是第一个表
$objPHPExcel->setActiveSheetIndex(0);
//将输出重定向到一个客户端web浏览器(Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition: attachment; filename=\"$fileName\"");
header('Cache-Control: max-age=0');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
if (!empty($_GET['excel'])) {
$objWriter->save('php://output'); //文件通过浏览器下载
} else {
$objWriter->save($fileName); //脚本方式运行,保存在当前目录
}
$objWriter->save('php://output');
exit;
}
ThinkPHP中,运用PHPExcel,将数据库导出到Excel中的更多相关文章
- HTML table导出到Excel中的解决办法
第一部分:html+js 1.需要使用的表格数据(先不考虑动态生成的table) <table class="table tableStyles" id="tabl ...
- html table表格导出excel的方法 html5 table导出Excel HTML用JS导出Excel的五种方法 html中table导出Excel 前端开发 将table内容导出到excel HTML table导出到Excel中的解决办法 js实现table导出Excel,保留table样式
先上代码 <script type="text/javascript" language="javascript"> var idTmr; ...
- 数据可视化之powerBI基础(十一)Power BI中的数据如何导出到Excel中?
https://zhuanlan.zhihu.com/p/64415543 把Excel中数据加载到PowerBI中我们都已经熟悉了,但是怎么把在PowerBI中处理好的数据导出到Excel中呢?毕竟 ...
- 把数据库里面的stu表中的数据,导出到excel中
# 2.写代码实现,把我的数据库里面的stu表中的数据,导出到excel中 #编号 名字 性别 # 需求分析:# 1.连接好数据库,写好SQL,查到数据 [[1,'name1','男'],[1,'na ...
- 如何将存储在MongoDB数据库中的数据导出到Excel中?
将MongoDB数据库中的数据导出到Excel中,只需以下几个步骤: (1)首先,打开MongoDB安装目录下的bin文件夹,(C:\Program Files (x86)\MongoDB\Serve ...
- 将ACCESS 的数据库中的表的文件 导出了EXCEL格式
将ACCESS 的数据库中的表的文件 导出了EXCEL格式 '''' '将ACCESS数据库中的某个表的信息 导出为EXCEL 文件格式 'srcfName ACCESS 数据库文件路径 'desfN ...
- jsp 页面内容导出到Excel中
日常使用网络资源时经常需要把网页中的内容下载到本地,并且导出到Excel中,现在介绍一种非常简单的方式实现网络资源的下载.只需要讲jsp的最上面加上一句话 <% response.reset() ...
- 使用POI把查询到的数据表数据导出到Excel中,一个表一个sheet.最详细!!!
一.需求 我们会遇到开发任务: 经理:小王,你来做一下把数据库里的数据导出到Excel中,一个表是一个sheet,不要一个表一个Excel. 小王:好的,经理.(内心一脸懵逼) 二.前期准备 首先我们 ...
- php将数据库导出成excel的方法
<?php $fname = $_FILES['MyFile']['name']; $do = copy($_FILES['MyFile']['tmp_name'],$fname); if ($ ...
随机推荐
- Hibernate4.3 并发控制
一.悲观锁 悲观锁不是Hibernate的锁,而是数据库的update锁,select * from item for update. Hibernate 就是利用这种锁机制,在查询上上锁. 悲观 ...
- Python练习题 045:Project Euler 017:数字英文表达的字符数累加
本题来自 Project Euler 第17题:https://projecteuler.net/problem=17 ''' Project Euler 17: Number letter coun ...
- IP基础知识
请根据IP地址 和 子网掩码,计算出 网络地址.广播地址 IP地址分类 对3类主要IP地址的补充说明:
- 1. Spring Boot入门
1.Spring Boot简介 简化Spring应用开发的一个框架 整个Spring技术栈的一个大整合 J2EE开发的一站式解决方案 优点: – 快速创建独立运行的Spring项目以及与主流框架集成 ...
- 关于继承、封装、多态、抽象和接口(Java)
1.继承: 通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类.已有的称为父类,新的类称为子类(父类派生子类,子类继承父类). (1)继承的优点:①代码的可重用性: ②父类的属性的方 ...
- opencv 中从cv::line和resize()函数
转自: https://blog.csdn.net/weixin_36340947/article/details/77095924 转自: https://blog.csdn.net/robinhj ...
- MATLAB鼠标事件
来源:https://blog.csdn.net/weixin_39090239/article/details/80586930 前记: 人机交互的方式--键盘开关.鼠标.触摸屏.体感传感器(Kin ...
- 温湿度传感器DHT11程序示例
DHT11概述 HT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器. 它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性.传感器包括一个电阻式 ...
- 这个网易云JS解密,老网抑云看了都直呼内行
最近更新频率慢了,这不是因为CK3发售了嘛,一个字就是"肝".今天来看一下网易云音乐两个加密参数params和encSecKey,顺便抓取一波某歌单的粉丝,有入库哦,使用mysql ...
- Java变量命名前俩个字母仅含有一个大写字母的坑
背景 前几周在做项目fetch切换,即将HttpUtils调用改成使用Feign调用.大概代码如下: // 原代码 String resultJson = HttpUtil.get(url + &qu ...