PHP 導(dǎo)出Excel示例分享
更新時(shí)間:2014年08月18日 11:41:01 投稿:hebedich
在開發(fā)一個(gè)商城網(wǎng)站的時(shí)候,客戶需要一個(gè)導(dǎo)出報(bào)表的功能,我使用PHPExcel來實(shí)現(xiàn)這個(gè)功能。
下載PHPExcel_1.8.0_doc.zip http://phpexcel.codeplex.com/,將解壓后的文件夾里的Classes上傳到網(wǎng)站的根目錄下,Classes目錄內(nèi)的內(nèi)容如下:
導(dǎo)出文件Excel.php
require_once dirname(__FILE__).'/Classes/PHPExcel.php';//引入PHPExcel
.....此處略去從數(shù)據(jù)庫獲取數(shù)據(jù)的過程,$a為需要導(dǎo)出的數(shù)組......
$numArr = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
$arr = array('訂單號(hào)','下單時(shí)間','城市','地區(qū)', '客戶名稱', '收貨人', '聯(lián)系電話', '收貨地址', 'ERP客戶名稱', '物流系統(tǒng)客戶名稱', '活動(dòng)項(xiàng)目',
'品牌', '型號(hào)', '顏色', '物流系統(tǒng)型號(hào)', '訂貨量', '單價(jià)', '代收貨款', '紅包', '價(jià)保返利', '運(yùn)費(fèi)', '實(shí)收金額', '付款方式', '訂單來源',
'上游廠商', '是否在倉(cāng)', '快遞面單號(hào)', '訂單狀態(tài)', '確認(rèn)時(shí)間', '末次狀態(tài)確認(rèn)時(shí)間', '描述', '對(duì)應(yīng)業(yè)務(wù)', '對(duì)應(yīng)客服', '商家留言', '下單摘要',
'業(yè)務(wù)員', '聯(lián)系方式');
// 輸出標(biāo)題
echo date('H:i:s') , " Add some data" , EOL;
//設(shè)置換行
$objPHPExcel->getActiveSheet()->getStyle('H')->getAlignment()->setWrapText(true);
$objPHPExcel->getActiveSheet()->getStyle('Y')->getAlignment()->setWrapText(true);
//設(shè)置相應(yīng)列的寬度
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(15);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(20);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(15);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('H')->setWidth(40);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('I')->setWidth(15);
$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('J')->setWidth(15);
//輸出第一行
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', $arr[0])
->setCellValue('B1', $arr[1])
->setCellValue('C1', $arr[2])
->setCellValue('D1', $arr[3])
->setCellValue('E1', $arr[4])
->setCellValue('F1', $arr[5])
->setCellValue('G1', $arr[6])
->setCellValue('H1', $arr[7])
->setCellValue('I1', $arr[8])
->setCellValue('J1', $arr[9])
->setCellValue('K1', $arr[10])
->setCellValue('L1', $arr[11]);
//輸出內(nèi)容
for($i=0;$i<count($a);$i++){
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue($numArr[0].($i+2), $a[$i]['order_sn'])
->setCellValue($numArr[1].($i+2), $a[$i]['add_time'])
->setCellValue($numArr[2].($i+2), $a[$i]['city'])
->setCellValue($numArr[3].($i+2), $a[$i]['region_name'])
->setCellValue($numArr[4].($i+2), $a[$i]['company'])
->setCellValue($numArr[5].($i+2), $a[$i]['consignee'])
->setCellValue($numArr[6].($i+2), $a[$i]['mobile'])
->setCellValue($numArr[7].($i+2), $a[$i]['address'])
->setCellValue($numArr[8].($i+2), '')
->setCellValue($numArr[9].($i+2), '')
->setCellValue($numArr[10].($i+2), '')
->setCellValue($numArr[11].($i+2), $a[$i]['brand_name']);
}
// Rename worksheet
echo date('H:i:s') , " Rename worksheet" , EOL;
$dirName = date("Ymd");//目錄名
$fileName = date("YmdHis");//文件名
$objPHPExcel->getActiveSheet()->setTitle($fileName);
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Save Excel 2007 file
echo date('H:i:s') , " Write to Excel2007 format" , EOL;
$callStartTime = microtime(true);
if(!opendir('../excel/'.$dirName)){
mkdir('../excel/'.$dirName);
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('../excel/'.$dirName.'/'.$fileName.'.xlsx');
$end = getCurrentTime();
$spend = $end-$begin;
if ($spend > 30){
echo '<script>if(confirm("執(zhí)行超時(shí)!")){ window.history.back(-1);}</script>';
exit;
}
header('Location:http://'.$_SERVER['HTTP_HOST'].'/excel/'.$dirName.'/'.$fileName.'.xlsx');
您可能感興趣的文章:
- php導(dǎo)入導(dǎo)出excel實(shí)例
- 基于PHP導(dǎo)出Excel的小經(jīng)驗(yàn) 完美解決亂碼問題
- 利用phpexcel把excel導(dǎo)入數(shù)據(jù)庫和數(shù)據(jù)庫導(dǎo)出excel實(shí)現(xiàn)
- php導(dǎo)出excel格式數(shù)據(jù)問題
- PHP導(dǎo)出EXCEL快速開發(fā)指南--PHPEXCEL的使用詳解
- Yii中使用PHPExcel導(dǎo)出Excel的方法
- phpexcel導(dǎo)出excel的顏色和網(wǎng)頁中的顏色顯示不一致
- php不使用插件導(dǎo)出excel的簡(jiǎn)單方法
- PHP實(shí)現(xiàn)導(dǎo)出帶樣式的Excel
相關(guān)文章
用mysql內(nèi)存表來代替php session的類
mysql內(nèi)存表實(shí)現(xiàn)替換php session類,效果什么大家可以自己測(cè)試下。2009-02-02
對(duì)比PHP對(duì)MySQL的緩沖查詢和無緩沖查詢
PHP中使用函數(shù)查詢MySQL中的數(shù)據(jù)默認(rèn)是以緩沖模式,除此之外MySQL程序還支持一種無緩沖模式,本文我們將來對(duì)比PHP對(duì)MySQL的緩沖查詢和無緩沖查詢:2016-07-07
php下圖片文字混合水印與縮略圖實(shí)現(xiàn)代碼
php中圖片文字混合水印與縮略圖的實(shí)現(xiàn)代碼,需要的朋友可以參考下。2009-12-12
php中使用array_filter()函數(shù)過濾數(shù)組實(shí)例講解
在本篇文章里小編給大家分享的是一篇關(guān)于php中使用array_filter()函數(shù)過濾數(shù)組實(shí)例講解,有興趣的朋友們可以學(xué)習(xí)下。2021-03-03

