File: /www/wwwroot//douyin.dsfnj.com/daoruxls/daoruxls/export.php
<?php
/**
* PHPEXCEL生成excel文件
* @author:素材火 http://blog.csdn.net/winter13292/article/details/8123755
* @desc 支持任意行列数据生成excel文件,暂未添加单元格样式和对齐
*/
include_once('connect.php');
//$list = array(
// array('id' => '1', 'email' => "87423050@qq.com", 'password' => 'sucaihuo.com'),
// array('id' => '2', 'email' => '41614@qq.com', 'password' => 'hjl666666'),
// array('id' => '3', 'email' => 'zhangliao@163.com', 'password' => 'zhangqirui'),
//);
$query = mysqli_query($conn, "select * from user limit 50");
$i =0;
$list = array();
while($row=mysqli_fetch_array($query)){
$list[$i]['id'] = $row['id'];
$list[$i]['username'] = $row['username'];
$list[$i]['password'] = $row['password'];
$i++;
}
$title = array('ID', '邮箱', '密码'); //设置要导出excel的表头
exportExcel($list, '素材火用户表', $title);
function exportExcel($data, $savefile = null, $title = null, $sheetname = 'sheet1') {
require_once 'PHPExcel.class.php';
//若没有指定文件名则为当前时间戳
if (is_null($savefile)) {
$savefile = time();
}
//若指字了excel表头,则把表单追加到正文内容前面去
if (is_array($title)) {
array_unshift($data, $title);
}
$objPHPExcel = new PHPExcel();
//Excel内容
$head_num = count($data);
foreach ($data as $k => $v) {
$obj = $objPHPExcel->setActiveSheetIndex(0);
$row = $k + 1; //行
$nn = 0;
foreach ($v as $vv) {
$col = chr(65 + $nn); //列
$obj->setCellValue($col . $row, $vv); //列,行,值
$nn++;
}
}
//设置列头标题
for ($i = 0; $i < $head_num - 1; $i++) {
$alpha = chr(65 + $i);
$objPHPExcel->getActiveSheet()->getColumnDimension($alpha)->setAutoSize(true); //单元宽度自适应
$objPHPExcel->getActiveSheet()->getStyle($alpha . '1')->getFont()->setName("Candara"); //设置字体
$objPHPExcel->getActiveSheet()->getStyle($alpha . '1')->getFont()->setSize(12); //设置大小
$objPHPExcel->getActiveSheet()->getStyle($alpha . '1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLACK); //设置颜色
$objPHPExcel->getActiveSheet()->getStyle($alpha . '1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //水平居中
$objPHPExcel->getActiveSheet()->getStyle($alpha . '1')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直居中
$objPHPExcel->getActiveSheet()->getStyle($alpha . '1')->getFont()->setBold(true); //加粗
}
$objPHPExcel->getActiveSheet()->setTitle($sheetname); //题目
$objPHPExcel->setActiveSheetIndex(0); //设置当前的sheet
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $savefile . '.xls"');//文件名称
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //Excel5
$objWriter->save('php://output');
}
?>