日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php 导出excel的三种方法

發(fā)布時間:2023/12/20 php 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 导出excel的三种方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.PHPExcel

thinkphp PHPExcel放到這個目錄下

/*** 導(dǎo)出excel表格*/ function exportExcel($data,$filename){$xlsTitle = iconv('utf-8', 'gb2312', $filename); //文件名稱//$fileName = $filename . "-" . date('YmdHis'); //or $xlsTitle 文件名稱可根據(jù)vendor("PHPExcel.PHPExcel");$objPHPExcel = new \PHPExcel();$objPHPExcel->setActiveSheetIndex(0);$dateExcel = $objPHPExcel->getActiveSheet();$dateExcel->getDefaultStyle()->getFont()->setName('微軟雅黑');$dateExcel->getDefaultStyle()->getFont()->setSize(12); //字體大小$dateExcel->getStyle('1')->getFont()->setBold(true); //第一行是否加粗$dateExcel->getStyle('1')->getFont()->setSize(13); //第一行字體大小$dateExcel->getStyle('1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//水平居中// 設(shè)置行高度$dateExcel->getDefaultRowDimension()->setRowHeight(20); //設(shè)置默認行高$dateExcel->getRowDimension('1')->setRowHeight(30); //第一行行高$rows = count($data);for ($i = 0; $i < count($data); $i++) {$row = $i + 1;$key = ord("A");//A--65$key2 = ord("@");//@--64foreach ($data[$i] as $d) {if ($key > ord("Z")) {$key2 += 1;$key = ord("A");$col = chr($key2) . chr($key);//超過26個字母時才會啟用} else {if ($key2 >= ord("A")) {$col = chr($key2) . chr($key);//超過26個字母時才會啟用} else {$col = chr($key);}}$dateExcel->setCellValue($col . $row, $d);$key++;}}//邊框樣式$styleArray = array('borders' => array('allborders' => array(//'style' => PHPExcel_Style_Border::BORDER_THICK,//邊框是粗的'style' => \PHPExcel_Style_Border::BORDER_THIN,//細邊框'color' => array('argb' => '#000'),),),);$dateExcel->getStyle('A1:' . $col . $rows)->applyFromArray($styleArray);$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(20);ob_end_clean(); //!!!!!!!清除緩沖區(qū),避免亂碼header('pragma:public');header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $xlsTitle . '.xls"');header("Content-Disposition:attachment;filename=$filename.xls");$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output'); }

參數(shù)$data 傳入的格式為:

? ? ? ??

$filename為文件名

2.\t

header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");
//輸出內(nèi)容如下:?
echo???"姓名"."\t";?
echo???"生日"."\t[這有一個空格]";?
echo???"學(xué)歷"."\t";?
echo???"\n";?
echo???"張三"."\t";?
echo???"1992-10-12"."\t";?
echo???"本科"."\t";?
?>

如果遇到xls打開中文亂碼的問題,可以使用mb_convert_encoding("姓名", "gb2312", "UTF-8")這個方法,將UTF-8轉(zhuǎn)為gb2312編碼格式。注:這個根據(jù)自己的實際情況轉(zhuǎn)碼,我自己的是UTF-8輸出到xls亂碼

在使用\t輸出excel的時候,因有時間格式顯示不完全,固在時間一列上加了一個空格,輸出時間顯示,但列寬不夠,不會設(shè)置,于是選擇了第三種方式,可以添加style設(shè)置樣式

3.table?

header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");

$html= ""; foreach ($data as $value){$html=$html."<tr><td align='center'>".$value[0]."</td>"."<td align='center'>".$value[1]."</td>"."<td align='center' >".$value[2]." "."</td>"."<td align='center' style='vnd.ms-excel.numberformat:yyyy-mm-dd hh:mm'>".$value[3]."</td>"."<td align='center' style='vnd.ms-excel.numberformat:yyyy-mm-dd hh:mm'>".$value[4]."</td>"."<td align='center'>".$value[5]."</td>"; } $html="<table border='1'>".$html."</table>"; echo $html;

如果出現(xiàn)亂碼,則頭信息更換為

header("Content-type: text/html; charset=utf-8"); header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:attachment;filename=$filename.xls"); header("Pragma: no-cache"); header("Expires: 0");

附:GridView導(dǎo)出Excel常見的5種文本格式

1) 文本:vnd.ms-excel.numberformat:@

2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd

3) 數(shù)字:vnd.ms-excel.numberformat:#,##0.00

4) 貨幣:vnd.ms-excel.numberformat:¥#,##0.00

5) 百分比:vnd.ms-excel.numberformat: #0.00%

?

?

?

? ?

總結(jié)

以上是生活随笔為你收集整理的php 导出excel的三种方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。