在某些網(wǎng)站或基于WEB的系統(tǒng)中,可能希望通過(guò)某種技術(shù)實(shí)現(xiàn)將網(wǎng)站中的數(shù)據(jù)(或部分?jǐn)?shù)據(jù))導(dǎo)出為Excel表并下載到本地電腦的功能。這里筆者找到一個(gè)插件,可以很好地實(shí)現(xiàn)這個(gè)功能。首先需要下載插件,可以到網(wǎng)站搜一下PHPExcel-1.8,會(huì)有很多可以下載的地方,把它下載到你的電腦并放到網(wǎng)站中的某個(gè)位置。然后看看下面的PHP代碼:
include("include/PHPExcel-1.8/Classes/PHPExcel.php");//包含插件
$objPHPExcel = new PHPExcel();// 創(chuàng)建Excel文件對(duì)象
// 設(shè)置文檔信息,這個(gè)文檔信息windows系統(tǒng)可以右鍵文件屬性查看
$objPHPExcel->getProperties()->setCreator("藝瓊網(wǎng)絡(luò)")//文檔作者
->setLastModifiedBy("藝瓊網(wǎng)絡(luò)")//文檔修改得
->setTitle("藝瓊網(wǎng)絡(luò)客戶數(shù)據(jù)")//文檔標(biāo)題
->setSubject("客戶數(shù)據(jù)表")//副標(biāo)題
->setDescription("藝瓊網(wǎng)絡(luò)導(dǎo)出的客戶數(shù)據(jù)。")//文檔描述
->setKeywords("")
->setCategory("");
//根據(jù)excel坐標(biāo),添加數(shù)據(jù)
$objPHPExcel->setActiveSheetIndex(0)//設(shè)置表格第一行的數(shù)據(jù)
->setCellValue('A1','姓名')
->setCellValue('B1','性別')
->setCellValue('C1','電話')
->setCellValue('D1','注冊(cè)日期');
$row=2;//行數(shù)計(jì)數(shù)器,因第一行為標(biāo)題(上面已經(jīng)設(shè)置好),因此,咱們的計(jì)數(shù)器從第2行開始
$mysql= "select * from kehu";//根據(jù)你自己的數(shù)據(jù)庫(kù)邏輯修改SQL語(yǔ)句
$myexe = mysql_query($mysql);
while($re = mysql_fetch_object($myexe))
{
//循環(huán)設(shè)置數(shù)據(jù)
$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);//設(shè)置所有行默認(rèn)行高
$objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//所有單元格橫向居中
$objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);//所有單元格縱向居中
/*設(shè)置各列寬度*/
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(25);//對(duì)部分內(nèi)容較寬的列設(shè)置列寬,使之能容納內(nèi)容
/*首行粗體*/
$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('客戶庫(kù)');
// 設(shè)置第一個(gè)sheet為工作的sheet
$objPHPExcel->setActiveSheetIndex(0);
$FileName = "/excel/藝瓊網(wǎng)絡(luò)學(xué)員庫(kù).xlsx";//注意,若無(wú)excel目錄,需要先建立該目錄,否則會(huì)存儲(chǔ)失敗
// 保存Excel 2007格式文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save(iconv("UTF-8","GB2312",$FileName));//保存文件到服務(wù)器
header("location:" . iconv("UTF-8","GB2312",$FileName));//下載Excel文檔
通過(guò)上述代碼可以看出,PHPExcel功能很強(qiáng)大。程序員可根據(jù)上面的代碼結(jié)合自己的業(yè)務(wù)邏輯進(jìn)行修改,開發(fā)出符合用戶需要的導(dǎo)出為Excel文件功能。