以下为本篇文章全部内容:
就在刚刚,没错就在刚刚,群里有个人问了php怎么导出Excel表格,刚好之前做过这样的功能。之前群里也有个人让我帮忙写一个导出,现在把这个方法告诉大家。其实这个导出很简单,使用了PHPExcel的已经写好的方法,我们只需要调用就OK了,当然除了导出也就有导入,下回会教大家如何把Excel表格的数据导入到MySQL数据库。好了废话就不多说,下面把代码奉献上来。
PHPExcel的下载地址:http://phpexcel.codeplex.com/
<?php
// +----------------------------------------------------------------------
// | Sphynx PHPExcel导出Excel表格
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2014 http://www.sunnyos.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Sphynx <admin@sunnyos.com> QQ327388905
// +----------------------------------------------------------------------
/*
*+----------------------------------------------------------------------
* PHPExcel导出Excel表格
* array $rearr 需要导出的数组
*+----------------------------------------------------------------------
*/
public function export($rearr) {
$result = array(
0 => '标题',
1 => '内容',
2 => '发表时间',
3 => '状态'
);
$arr = array(
0 => 'A',
1 => 'B',
2 => 'C',
3 => 'D'
);
// 创建一个excel
$objPHPExcel = new PHPExcel();
/****************************************设置居中开始**************************************/
foreach ($arr as $key => $value) {
$objPHPExcel->getActiveSheet()->getStyle($value)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
}
/****************************************设置居中结束**************************************/
// 循环$arr定义的列设置每列内容居中
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")->setKeywords("office 2007 openxml php")->setCategory("Test result file");
/**************************************设置标题开始*****************************************/
// 循环$arr定义的列和$result设置表头
$objPHPExcel->setActiveSheetIndex(0);
foreach ($arr as $key => $value) {
$objPHPExcel->getActiveSheet()->setCellValue($value . "1", $result[$key]);
}
/**************************************设置标题结束*****************************************/
/**************************************设置内容开始*****************************************/
$objPHPExcel->setActiveSheetIndex(0);
$i = 2;
// $rearr需要导出的数据二维数组
foreach ($rearr as $key => $value) {
// 这里从二维数组里面通过键名获取到值放到相应的表格中
$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $value['title']);
$objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $value['content']);
$objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $value['time']);
$objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $value['status']==0 ? "未审核" : "已审核");
$i++;
}
/**************************************设置内容结束*****************************************/
/**************************************设置宽度开始*****************************************/
// 循环$arr定义的列设置每列宽度
foreach ($arr as $key => $value) {
$objPHPExcel->getActiveSheet()->getColumnDimension($value)->setWidth(20);
}
/**************************************设置宽度结束*****************************************/
/**************************************设置导出下载开始*****************************************/
$objPHPExcel->getSheet(0)->setTitle('上传数据格式'); // 工作区域标题
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="上传数据格式.xls"');//导出文件
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
header('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header('Pragma: public'); // HTTP/1.0
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');//导出文件
/**************************************设置导出下载结束*****************************************/
}扫二维码快速加群:

如果大家有什么疑问可以加我QQ327388905进行解答,也可以加入交流群
总赞数量:18276
总踩数量:128089
文章数量:29