使用PHPExcel实现数据批量导出为excel表格
首先需要下载PHPExecel类文件,帮助文档可以参考PHPExcel中文帮助手册|PHPExcel使用方法。
下面直接上例子,是我自己写的一个简单的批量导出数据为excel的例子
前台页面 比较简单,就是一个超链接,跳转到处理页面,超链接也可以跟一些参数(看需求)!
<a href="./Process1.php">导出excel表格</a>
后台Process.php页面
/**
* 批量导出数据
* @param $arr 从数据库查询出来,即要导出的数据
* $name excel表歌名
*/
function expExcel($arr,$name){ require_once 'PHPExcel.php';
//实例化
$objPHPExcel = new PHPExcel();
/*右键属性所显示的信息*/
$objPHPExcel->getProperties()->setCreator("zxf") //作者
->setLastModifiedBy("zxf") //最后一次保存者
->setTitle('数据EXCEL导出') //标题
->setSubject('数据EXCEL导出') //主题
->setDescription('导出数据') //描述
->setKeywords("excel") //标记
->setCategory("result file"); //类别 //设置当前的表格
$objPHPExcel->setActiveSheetIndex(0);
// 设置表格第一行显示内容
$objPHPExcel->getActiveSheet()
->setCellValue('A1', '业主姓名')
->setCellValue('B1', '密码')
->setCellValue('C1', '手机号码')
->setCellValue('D1', '地址')
//设置第一行为红色字体
->getStyle('A1:D1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED); $key = 1;
/*以下就是对处理Excel里的数据,横着取数据*/
foreach($arr as $v){ //设置循环从第二行开始
$key++;
$objPHPExcel->getActiveSheet() //Excel的第A列,name是你查出数组的键值字段,下面以此类推
->setCellValue('A'.$key, $v['name'])
->setCellValue('B'.$key, $v['pwd'])
->setCellValue('C'.$key, $v['phone'])
->setCellValue('D'.$key, $v['address']); }
//设置当前的表格
$objPHPExcel->setActiveSheetIndex(0);
ob_end_clean(); //清除缓冲区,避免乱码
header('Content-Type: application/vnd.ms-excel'); //文件类型
header('Content-Disposition: attachment;filename="'.$name.'.xls"'); //文件名
header('Cache-Control: max-age=0');
header('Content-Type: text/html; charset=utf-8'); //编码
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //excel 2003
$objWriter->save('php://output');
exit; } /***********调用**********************/
header("Content-type:text/html;charset=utf-8"); //链接数据库
$link = @mysql_connect('localhost','root','') or die('连接数据库失败');
mysql_select_db('test',$link);
mysql_query('set names utf8'); //先获取数据
$sql = "select * from house";
$res = mysql_query($sql);
$arr = array();
//把$res=>$arr,把结果集内容转移到一个数组中
while ($row = mysql_fetch_assoc($res)){
$arr[] = $row;
} //excel表格名
$name = "用户表"; //调用
expExcel($arr,$name)
使用PHPExcel导出数据至此完毕,对于使用PHPExcel导入到数据库可以参看使用PHPExcel实现数据批量上传到数据库
使用PHPExcel实现数据批量导出为excel表格的更多相关文章
- 使用phpExcel将数据批量导出
if(isset($_POST['export']) && $_POST['export'] == '导出所选数据') { //此处为多选框已勾选的数据 $export_id=$_PO ...
- 使用PHPExcel实现数据批量导入到数据库
此例子只使用execel2003的.xls文档,若使用的是其他版本,可以保存格式为“Execel 97-2003 工作簿(*.xls)”即.xls文件类型即可! 功能说明:只能上传Excel2003类 ...
- Java导出数据行写入到Excel表格:基于Apache POI
Java导出数据行写入到Excel表格:基于Apache POI import java.io.File; import java.io.FileOutputStream; import org.ap ...
- 把数据库里面的stu表中的数据,导出到excel中
# 2.写代码实现,把我的数据库里面的stu表中的数据,导出到excel中 #编号 名字 性别 # 需求分析:# 1.连接好数据库,写好SQL,查到数据 [[1,'name1','男'],[1,'na ...
- 数据可视化之powerBI基础(十一)Power BI中的数据如何导出到Excel中?
https://zhuanlan.zhihu.com/p/64415543 把Excel中数据加载到PowerBI中我们都已经熟悉了,但是怎么把在PowerBI中处理好的数据导出到Excel中呢?毕竟 ...
- Python实现数据库一键导出为Excel表格
依赖 Python2711 xlwt MySQLdb 数据库相关 连接 获取字段信息 获取数据 Excel基础 workbook sheet 案例 封装 封装之后 测试结果 总结 数据库数据导出为ex ...
- java连接MongoDB查询导出为excel表格
背景 因为项目需求.每一个星期须要统计每一个公众号7天的訪问数,月底就须要统计一个月的訪问数,40多个公众号.每次手动统计都须要花费1个小时,总之是一项无技术耗时耗神的手工活. 于是.想写个程序来统计 ...
- PHPExcel 大数据的导出
PHPExcel 是一个php语言读取导出数据.导入生成Excel的类库,使用起来非常方便,但有时会遇到以些问题,比如导出的数据超时,内存溢出等. 下面我们来说说这些问题和解决办法. PHPExcel ...
- SSIS 中将csv 文件批量导出到excel 文件,并设置excel 文件中某些列的data column format 为Text
csv 文件是文本文件类型,但是打开csv 文件后(默认使用本地已经安装的excel 来打开excel 文件),默认显示出来的是general 类型(column data format)的数据, 这 ...
随机推荐
- 让PETSc跑得再快一些
最近做了一个使用PETSc来求解线性方程组(Ax=b)的项目,把其中遇到的一些坑和解决方法记录下来.本文不介绍PETSc如何入门,而是给出一些能让PETSc运行得更快的编程细节.开始我只是简单地修改P ...
- [0day]微软XP系统右键菜单任意DLL却持
作者:K8哥哥只要在DLL上右键就被却持 任意DLL名称 任意位置 (其实是EXPLOR) 这个漏洞早已存在,08年的时候就发现了(当时编译某个DLL源码) 在DLL上右键看属性的时候崩溃了,当时就想 ...
- 13-01 java StringBuffer类,StringBuilder类
StringBuffer类的构造方法 package cn.itcast_01; /* * 线程安全(多线程讲解) * 安全 -- 同步 -- 数据是安全的 * 不安全 -- 不同步 -- 效率高一些 ...
- odoo 开发基础 -- 视图之xpath语法
odoo 视图函数 在整个项目文件中,结构并不是十分明显,虽然它也遵循MVC设计,类比django的MTV模式,各个模块区分的十分明显,在Odoo中,视图的概念不是特别明显,很多时候,我们会将调用模型 ...
- opencv实现canopy算法
#include "stdafx.h" using namespace cv; int main(int argc, char** argv) { Mat img=imread(& ...
- C# 多线程学习系列四之ThreadPool取消、超时子线程操作以及ManualResetEvent和AutoResetEvent信号量的使用
1.简介 虽然ThreadPool.Thread能开启子线程将一些任务交给子线程去承担,但是很多时候,因为某种原因,比如子线程发生异常.或者子线程的业务逻辑不符合我们的预期,那么这个时候我们必须关闭它 ...
- Method 'initializationerror' not found.Opening the test classs JUnit4单元测试报错问题解决办法(图文详解)
不多说,直接上干货! 问题现象 今天使用JUnit 4进行单元测试时,测试程序一直运行不起来,报method initializationerror not found错误,如下: 问题分析 网上说版 ...
- vue2.0和better-scroll实现左右联动效果
在做移动端商城或者其他页面的时候,经常会遇到左右联动的效果,今天小编vue2.0和better-scroll这个插件一起实现左右联动效果. 实现上面的效果,思路一定很重要,还有需求 1. 左边一级分类 ...
- windwos平台安装phpredis模块
要求 必备知识 熟悉基本编程环境搭建. 运行环境 windows 7(64位);php-5.3 redis64-2.8.17 下载地址 环境下载 什么是PHP Redis PHP Redis 是一个用 ...
- spring boot 与 filter
spring boot 里面用拦截器好像比用过滤器多一些. 在过滤器中, 并不能获取到action的相关信息, 会造成很多的麻烦和功能欠缺. 那, 这里就用过滤器做一个小栗子, 实际使用过程中, 不会 ...