PHP从数据库导出EXCEL文件
参考博客链接:http://www.cnblogs.com/huangcong/p/3687665.html
我的程序代码
原生导出Excel文件
<?php
header('Content-type: text/html; charset=utf-8');
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=test.xls");
$conn = mysqli_connect("localhost","zhouqi","445864742") or die("无法连接数据库");
mysqli_select_db($conn,"test");
mysqli_set_charset($conn,'utf8');
$sql = "SELECT * FROM student";
$result = mysqli_query($conn,$sql);
echo "ID号\t姓名\t分数\t\n";
while ($row = mysqli_fetch_array($result)){
echo $row[0]."\t".$row[1]."\t".$row[2]."\t\n";
}
?>
\t为换格 \n为换行
PHPEXCEL用法
<?php
require_once(phpexcel_dir()); //引入PHPExcel 类
$objPHPExcel=new PHPExcel();
//获得数据 ---一般是从数据库中获得数据
$conn = mysqli_connect(Conf::$db_host,Conf::$db_username,Conf::$db_password) or die("无法连接数据库");//连接数据库主机,用户名,密码 配置文件里设置
mysqli_select_db($conn,Conf::$db_dbname);//选择数据库
mysqli_set_charset($conn,'utf8'); //设置字符集
//左连接连接三张表
$sql = "SELECT
a.id,a.order_sn,a.status,a.rev_name,a.rev_addr,a.rev_mail,a.rev_post,a.rev_mobile,b.account_name,c.brands_name,a.project
FROM ec_orders AS a
LEFT JOIN ec_account AS b ON a.account_id = b.id
LEFT JOIN ec_goods_brands AS c ON a.brands_id = c.id
WHERE a.is_del = 0 AND b.is_del = 0 AND c.is_del =0";
$result = mysqli_query($conn,$sql);
$data = array();
$i = 0;
while ($row = mysqli_fetch_array($result)){
$data[$i]['id'] = $row['id'];
$data[$i]['order_sn'] = $row['order_sn'];
//订单的状态 0:待确认 1:已确认/待付款 2:已付款/待发货 3:发货中 4:已发货 5:买家收货确认 6:订单完成 7:买家取消订单 8:卖家取消订单
switch ($row['status']){
case 0:
$row['status'] = '待确认';
break;
case 1:
$row['status'] = '已确认/待付款';
break;
case 2:
$row['status'] = '已付款/待发货';
break;
case 3:
$row['status'] = '发货中';
break;
case 4:
$row['status'] = '已发货';
break;
case 5:
$row['status'] = '买家确认收货';
break;
case 6:
$row['status'] = '订单完成';
break;
case 7:
$row['status'] = '买家取消订单';
break;
case 8:
$row['status'] = '卖家取消订单';
break;
default:
$row['status'] = '其他未知错误';
break;
}
$data[$i]['status'] = $row['status'];
$data[$i]['rev_name'] = $row['rev_name'];
$data[$i]['rev_addr'] = $row['rev_addr'];
$data[$i]['rev_mail'] = $row['rev_mail'];
$data[$i]['rev_post'] = $row['rev_post'];
$data[$i]['rev_mobile'] = $row['rev_mobile'];
$data[$i]['account_name'] = $row['account_name'];
$data[$i]['brands_name'] = $row['brands_name'];
$data[$i]['project'] = $row['project'];
$i++;
}
/*echo "<pre>";
print_r($data);
echo "</pre>";*/
//设置excel列名
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1','订单ID');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B1','订单编号');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C1','状态');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D1','收货人');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('E1','收货地址');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('F1','收货人邮箱');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('G1','邮编');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H1','收货人电话');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('I1','会员帐号');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('J1','品牌id');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('K1','项目名');
//背景填充颜色
$objPHPExcel->getActiveSheet()->getStyle( 'A1:K1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle( 'A1:K1')->getFill()->getStartColor()->setARGB('FF808080');
//把数据循环写入excel中
foreach($data as $key => $value){
$key+= 2; //从第二行开始填充
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$key,$value['id']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$key,$value['order_sn']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$key,$value['status']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$key,$value['rev_name']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('E'.$key,$value['rev_addr']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('F'.$key,$value['rev_mail']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('G'.$key,$value['rev_post']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('H'.$key,$value['rev_mobile']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('I'.$key,$value['account_name']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('J'.$key,$value['brands_name']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('k'.$key,$value['project']);
}
//设置默认字体
$objPHPExcel->getDefaultStyle()->getFont()->setName( 'Arial');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(12);
//设置列宽
$objPHPExcel->getActiveSheet()->getDefaultColumnDimension()->setWidth(14);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20);
//设置居中
$objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
//excel保存在根目录下 如要导出文件,以下改为注释代码
//$objPHPExcel->getActiveSheet() -> setTitle('SetExcelName');
//$objPHPExcel-> setActiveSheetIndex(0);
//$objWriter = $iofactory -> createWriter($objPHPExcel, 'Excel2007');
//$objWriter -> save('SetExcelName.xlsx');
//导出代码
$objPHPExcel->getActiveSheet() -> setTitle('订单列表');
$objPHPExcel-> setActiveSheetIndex(0);
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
$filename = '订单列表.xlsx';
ob_end_clean();//清除缓存以免乱码出现
header('Content-Type: application/vnd.ms-excel');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $filename . '"');
header('Cache-Control: max-age=0');
$objWriter -> save('php://output');
?>
PHP从数据库导出EXCEL文件的更多相关文章
- poi操作oracle数据库导出excel文件2
package com.test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFound ...
- poi操作oracle数据库导出excel文件
HSSFWorkbook workBook = new HSSFWorkbook();// 创建 一个excel文档对象 HSSFSheet sheet = workBook.createSheet( ...
- java POI导出Excel文件数据库的数据
在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.这里我简单实现导出Excel文件. POI jar ...
- jxl导出Excel文件
一.java项目实现读取Excel文件和导出Excel文件 实现读取和导出Excel文件的代码: package servlet; import java.io.FileInputStream; im ...
- PHP导出excel文件
现在教教你如何导入excel文件: 在我的文件储存里面有一个com文件夹的,将其解压放在ThinkPHP/Library/文件夹里面,然后就是写控制器啦!去调用这个插件: <?php names ...
- MSSQL2005 导出excel文件
Title:MSSQL2005 导出excel文件 --2011-01-16 16:01 EXEC master..xp_cmdshell 'bcp "select * from 数据库名 ...
- c# listview导出excel文件
首先在工程中需要添加对Microsoft Excel office 11.0 object的引用 生成excel的类代码如下 using System; using System.Collection ...
- PHP导出excel文件的几种方式
PHP导出excel文件的几种方式 先说说动态生成的内容当作文件来下载的方法: 1.通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作文件来 ...
- 转:PHP导出excel文件的几种方式
PHP导出excel文件的几种方式 文章来源:http://www.cnblogs.com/fredshare/archive/2012/10/29/2744243.html 先说说动态生成的内容当作 ...
随机推荐
- 全信号高清DVI编码器|上海视涛科技
高清DVI编码器(E700)简介 高清DVI编码器是上海视涛科技出品的高性能全信号DVI编码产品.该DVI编码器是上海视涛科技完全自主研发,并适用于DVI信号的编码采集及网络传输的专用硬件设备.可兼容 ...
- 数据连接到 Web 服务 InfoPath 2010 窗体中的 SharePoint 服务器上运行时的错误消息:"401-未经授权"解决方案
症状: 请考虑以下情形: Web 窗体发布到 SharePoint 服务器. 您创建 Microsoft InfoPath 2010 表单所在的 SharePoint 服务器上使用到位于数据的数据连接 ...
- github-ssh
# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: ...
- ArcGIS中国工具2.2正式发布
ArcGIS中国工具2.2新功能 1. 2.0全面支持ArcGIS10.3 2. 全面修改成插件,原来部分是独立运行的EXE 3. 可以制作倾斜的矩形图框 4. 修改宗地(地块)左上角为第一个点,填写 ...
- Web UI - Javascript之DOM Ready
最近终于稍微适应了工作环境,终于可以让自己缓口气.于是决定要写点东西,算是督促.记录和提升自己的学习.代码的世界,你不轮它,以后就会被它轮.这个系列尽量保持在一周或两周更一篇,目标是在创造内容的时候更 ...
- 在Android Stuido中使用Lint
要运行Lint工具,大家首先需要在Android Studio的“Analyze”菜单中选择“Inspect Code…”.当Android Studio完成了对项目的检测之后,它会在窗口底部显示出分 ...
- IDA来Patch android的so文件
在上文中,我们通过分析定位到sub_130C()这个函数有很大可能性是用来做反调试检测的,并且作者开了一个新的线程,并且用了一个while来不断执行sub_130C()这个函数,所以说我们每次手动的修 ...
- 【读书笔记】iOS-使用Web Service-基于客户端服务器结构的网络通信(一)
Web Service技术是一种通过Web协议提供服务,保证不同平台的应用服务可以互操作,为客户端程序提供不同的服务. 目前3种主流的Web Service实现方案用:REST,SOAP和XML-RP ...
- Android打开相机和打开相册
打开相机 /** * 选择相机 */ private void showCamera() { // 跳转到系统照相机 Intent cameraIntent = new Intent(MediaSto ...
- 网络热恋之XML解析
XML 可扩展标记语言 用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言 易读性高,编码手写难度小,数据量大 NSXMLPars ...