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‘);
?>

时间: 2024-10-10 16:42:45

PHP从数据库导出EXCEL文件的相关文章

PHP从数据库原生导出Excel文件

<?php //这里三个header文件是为了将数据库数据导出Excel表格中,必须存在;//设置编码header('Content-type: text/html; charset=utf-8');//设置为Excelheader("Content-type:application/vnd.ms-excel");//设置Excel表名header("Content-Disposition:filename=PHP_est.xls"); //面向过程风格,连接

PHP导出excel文件,第一步先实现PHP模板导出不带数据

今天继续研究PHP导出excel文件,把复杂的事情简单化,一步步实现功能,首先实现模板文件的导出,随后再实现写入数据后导出,最终实现功能,这是基本思路.中间可以加一步,先自己写入数据导出试试,随后再数据库导入.我首先把程序提交到自建的eubexcel.php文件,选用post提交,导出excel文件的程序在这个页面里书写,参考昨天下载的PHPExcel-1.8组件里的参考文档,先部署导出excel,具体代码如下 <?php error_reporting(E_ALL);ini_set('disp

使用Open Xml按模版导出Excel文件(上)

完整内容请参见我的网站 http://www.iyummy.com.cn/Blog/Detail/3 我们在做应用系统中经常需要将数据库中的数据导出成为Excel文件.如果是要导出报表的话,最好是能够根据定义好的模版生成一个美观的Excel. 以前要生成有样式的Excel.一般是使用Xml形式的Excel修改,或者使用Excel的Api.前者要修改样式的话特别麻烦,后者在Asp.net里会起很多进程. 庆幸的是从office 2007开始,微软使用了OpenXml来定义office的文件.使用r

页面导出Excel文件总结

1 概述: 1.1 导出耗时环节 1.利用MySQL语句查询行号,作为导出表格的序号 2.查询数据按照船代分组,Java代码获取分组数据 3.导出Excel文件按照船代分sheet页 4.导出设置错行号,导致表格标题丢失 5.设置导出表格样式 1.2 导出难点: 1.查询数据按照船代分组,Java代码获取分组数据 2.导出Excel文件按照船代分sheet页 2 利用MySQL语句查询行号,作为导出表格的序号 将数据库查询数据导出到Excel文件,Excel文件里有一列是序号,一般情况下,序号可

jxl导出Excel文件

一.java项目实现读取Excel文件和导出Excel文件 实现读取和导出Excel文件的代码: package servlet; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.text.SimpleDateFormat;

asp.net 输出(导出) excel 文件(实用)

废话不多说直接上代码,因为文中有中间业务处理,用到的朋友需要去整改,原理: 拼写table插入数据,输出数据流即可! /// <summary> /// 商品导出Excel /// </summary> /// <returns></returns> public ActionResult ProjectToExcel() { string subjectNo = Request.Params["SNo"] ?? ""

TXLSReadWriteII2版本导出Excel文件:

//TXLSReadWriteII2版本导出Excel文件: procedure TForm1.N1Click(Sender: TObject); var i: Integer; aSaveDialog: TSaveDialog; aFileName, aStampTime: AnsiString; aXlsObj: TXLSReadWriteII2; p: PDataRec; begin aSaveDialog := TSaveDialog.Create(Self); try aSaveDia

使用Open Xml按模版导出Excel文件(下)

(3)将数据写入Excel 把数据写入到Excel文件是本文的关键技术.这里需要用到OpenXml.在Sdk里已经提供了足够的文件操作方法,我们就调用这些方法,将数据源的数据写到文件中. 首先我们定义了一些工具类,用于读取单元格的行列值. 在Excel中,每个单元格都有一个地址:如B3表示第二行第三列的格子,在Utility中的GetRowIndex和GetColumnIndex就是输入字符串”B3”,返回Int类型的索引2 和3.还有输入“B3”,返回列的字母“B”等等. 在WorkSheet

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")//创建