利用PHPExcel導出excel文件的方法詳解_第1頁
利用PHPExcel導出excel文件的方法詳解_第2頁
利用PHPExcel導出excel文件的方法詳解_第3頁
利用PHPExcel導出excel文件的方法詳解_第4頁
利用PHPExcel導出excel文件的方法詳解_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第利用PHPExcel導出excel文件的方法詳解最近工作中需要用到phpexcel導出excel表格。自動存儲在固定位置。

之前導出excel使用header原生導出。

但是這種方法,我沒有找到可以自動存儲的功能。

如果你知道,請在下方留言,一起學習下。

先說一下header導出。

我這里使用的是thinkphp3.2框架.

/**

*導出excel表格

publicfunctionactionPutExcel()

$admin=M('admin');

$dbbacklist=$admin-select();

$title=["序號","用戶名","密碼","登陸時間"];

exportexcel($dbbacklist,$title);

/**導出數據為excel表格

*@param$data一個二維數組,結構如同從數據庫查出來的數組

*@param$titleexcel的第一行標題,一個數組,如果為空則沒有標題

*@param$filename下載的文件名

functionexportexcel($data=array(),$title=array(),$filename='report'){

ob_end_clean();

ob_start();

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");

//導出xls開始

if(!empty($title)){

foreach($titleas$k=$v){

$title[$k]=iconv("UTF-8","GB2312",$v);

$title=implode("",$title);

echo"$title

if(!empty($data)){

foreach($dataas$key=$val){

foreach($valas$ck=$cv){

$data[$key][$ck]=iconv("UTF-8","GB2312",$cv);

$data[$key]=implode("",$data[$key]);

echoimplode("

",$data);

}

這個沒啥說的,一共三個參數。傳對了就可以了。

Phpexcel導出excel

官網

官方給出的下載地址

放到你能引到的地方。

我這里使用的是laravel5.8框架

/**

*@name:導出excel

*@author:camellia

*@date:2025-03-08

*@param:$dataarray導出數據

*@param:$filenamestring文件名稱

*@param:$tabheadarray單個表格頭部

*@param:$rowwidtharray單個表格每行寬度

*@param:$setHeaderbool是否設置表頭

*@param:$saveFilebool是否保存文件

*@param:$sheetNameListarray

publicfunctioncreate_xls($data,$filename,$tabhead=[],$rowwidth=[],$setHeader=true,$sheetNameList=[],$saveFile=false)

ini_set('max_execution_time','0');

$filename=str_replace('.xls','',$filename).'.xls';

$phpexcel=new\PHPExcel();

$phpexcel-getProperties()

-setCreator("MaartenBalliauw")

-setLastModifiedBy("MaartenBalliauw")

-setTitle("Office2007XLSXTestDocument")

-setSubject("Office2007XLSXTestDocument")

-setDescription("TestdocumentforOffice2007XLSX,generatedusingPHPclasses.")

-setKeywords("office2007openxmlphp")

-setCategory("Testresultfile");

$arrayLevel=$this-getArrayLevel($data);

if($arrayLevel2)

foreach($dataas$key=$item)

//創(chuàng)建一個新的工作空間(sheet)

$phpexcel-createSheet();

$phpexcel-setactivesheetindex($key);

//設置sheettitle

$phpexcel-getActiveSheet()-setTitle($sheetNameList[$key]);

//獲取當前選中sheet對象

$objActSheet=$phpexcel-getActiveSheet();

if($setHeader)

$i=1;

if($tabhead)

//設置頭部

foreach($tabheadas$key=$val)

$phpexcel-getActiveSheet()-setCellValue($key,$val);

//文件內容插入表中

$i=2;

/*設置寬度*/

foreach($rowwidthas$key=$val)

$phpexcel-getActiveSheet()-getColumnDimension($key)-setWidth($val);

else

$i=1;

foreach($itemas$value)

/*excel文件內容*/

$j='A';

foreach($valueas$value2)

$objActSheet-setCellValue($j.$i,$value2);

$j++;

$i++;

else

$phpexcel-getActiveSheet()-setTitle('Sheet1');

$phpexcel-setActiveSheetIndex(0);

$objActSheet=$phpexcel-getActiveSheet();

if($setHeader)

//設置頭部

foreach($tabheadas$key=$val)

$phpexcel-getActiveSheet()-setCellValue($key,$val);

/*設置寬度*/

foreach($rowwidthas$key=$val)

$phpexcel-getActiveSheet()-getColumnDimension($key)-setWidth($val);

//文件內容插入表中

$i=2;

else

$i=1;

foreach($dataas$value)

/*excel文件內容*/

$j='A';

foreach($valueas$value2)

$objActSheet-setCellValue($j.$i,$value2);

$j++;

$i++;

//$phpexcel-getActiveSheet()-fromArray($data);

header('Content-Type:application/vnd.ms-excel');

header("Content-Disposition:attachment;filename=$filename");

header('Cache-Control:max-age=0');

header('Cache-Control:max-age=1');

header('Expires:Mon,26Jul199705:00:00GMT');//Dateinthepast

header('Last-Modified:'.gmdate('D,dMYH:i:s').'GMT');//alwaysmodified

header('Cache-Control:cache,must-revalidate');//HTTP/1.1

header('Pragma:public');//HTTP/1.0

$objwriter=\PHPExcel_IOFactory::createWriter($phpexcel,'Excel5');

if($saveFile)

$objwriter-save('/usr/share/nginx/html/xxxx/xxxxx/xxxxxx/'.$filename);//這是自動存儲到指定位置

$url=getenv('APP_URL')."/xxxxx/xxxx/xxxxxx/".$filename;

return$url;

else

$objwriter-save('php://output');//這是輸出瀏覽器

exit;

*返回數組的維度

*@author:camellia

*@date:2025-03-08

*@param[array]$arr[要判斷的數組]

*@return[number][緯度數字]

publicfunctiongetArrayLevel($arr)

$al=array(0);

functionaL($arr,$al,$level=0)

if(is_array($arr)){

$level++;

$al[]=$level;

foreach($arras$v){

aL($v,$al,$level);

aL($arr,$al);

returnmax($al);

}

上邊的例子是我自己在用的。重要的地方基本上都有注釋。對應的參數方法的注釋中都有說明,對應的傳參就可以了。

Phpexcel導出excel表格功能相對多樣化。但速度也相對慢一點。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論