在某些网站或基于WEB的系统中,可能希望通过某种技术实现将网站中的数据(或部分数据)导出为Excel表并下载到本地电脑的功能。这里笔者找到一个插件,可以很好地实现这个功能。首先需要下载插件,可以到网站搜一下PHPExcel-1.8,会有很多可以下载的地方,把它下载到你的电脑并放到网站中的某个位置。然后看看下面的PHP代码:
include("include/PHPExcel-1.8/Classes/PHPExcel.php");//包含插件
$objPHPExcel = new PHPExcel();// 创建Excel文件对象
// 设置文档信息,这个文档信息windows系统可以右键文件属性查看
$objPHPExcel->getProperties()->setCreator("艺琼网络")//文档作者
->setLastModifiedBy("艺琼网络")//文档修改得
->setTitle("艺琼网络客户数据")//文档标题
->setSubject("客户数据表")//副标题
->setDescription("艺琼网络导出的客户数据。")//文档描述
->setKeywords("")
->setCategory("");
//根据excel坐标,添加数据
$objPHPExcel->setActiveSheetIndex(0)//设置表格第一行的数据
->setCellValue('A1','姓名')
->setCellValue('B1','性别')
->setCellValue('C1','电话')
->setCellValue('D1','注册日期');
$row=2;//行数计数器,因第一行为标题(上面已经设置好),因此,咱们的计数器从第2行开始
$mysql= "select * from kehu";//根据你自己的数据库逻辑修改SQL语句
$myexe = mysql_query($mysql);
while($re = mysql_fetch_object($myexe))
{
//循环设置数据
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue("A" . $row,$re->name)
->setCellValue("B" . $row,$re->sex)
->setCellValue("C" . $row,$re->tel)
->setCellValue("D" . $row,$re->date)
$row++;
}
$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20);//设置所有行默认行高
$objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//所有单元格横向居中
$objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);//所有单元格纵向居中
/*设置各列宽度*/
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(25);//对部分内容较宽的列设置列宽,使之能容纳内容
/*首行粗体*/
$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true);
//首行填充样式
$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
//首行背景颜色
$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFill()->getStartColor()->setARGB('FF0770B1');
//首行字体颜色
$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->getColor()->setARGB('FFFFFFFF');
// 重命名工作sheet
$objPHPExcel->getActiveSheet()->setTitle('客户库');
// 设置第一个sheet为工作的sheet
$objPHPExcel->setActiveSheetIndex(0);
$FileName = "/excel/艺琼网络学员库.xlsx";//注意,若无excel目录,需要先建立该目录,否则会存储失败
// 保存Excel 2007格式文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save(iconv("UTF-8","GB2312",$FileName));//保存文件到服务器
header("location:" . iconv("UTF-8","GB2312",$FileName));//下载Excel文档
通过上述代码可以看出,PHPExcel功能很强大。程序员可根据上面的代码结合自己的业务逻辑进行修改,开发出符合用户需要的导出为Excel文件功能。