一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP輸出Excel PHPExcel的方法

PHP輸出Excel PHPExcel的方法

2019-09-18 11:25nhphp PHP教程

這篇文章主要為大家詳細介紹了PHP輸出Excel PHPExcel的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了PHP輸出Excel PHPExcel的具體代碼,供大家參考,具體內容如下

方法1:

/** 
 * 創建(導出)Excel數據表格 
 * @param array $list 要導出的數組格式的數據 
 * @param string $filename 導出的Excel表格數據表的文件名 
 * @param array $header Excel表格的表頭 
 * @param array $index $list數組中與Excel表格表頭$header中每個項目對應的字段的名字(key值) 
 * 比如: $header = array('編號','姓名','性別','年齡'); 
 *  $index = array('id','username','sex','age'); 
 *  $list = array(array('id'=>1,'username'=>'YQJ','sex'=>'男','age'=>24)); 
 * @return [array] [數組] 
 */ 
function createtable($list,$filename,$header=array(),$index = array()){ 
 header("Content-type:application/vnd.ms-excel"); 
 header("Content-Disposition:filename=".$filename.".xls"); 
 $teble_header = implode("\t",$header); 
 $strexport = $teble_header."\r"; 
 foreach ($list as $row){ 
  foreach($index as $val){ 
   $strexport.=$row[$val]."\t";  
  } 
  $strexport.="\r"; 

 } 
 $strexport=iconv('UTF-8',"GB2312//IGNORE",$strexport); 
 exit($strexport);  
} 

此方法代碼量少,可以放在thinkPHP5中的公共函數common.php中,方便調用,但是對輸出的Excel表格無法設置屬性

方法2:

首先需要到下載SDK,GitHub下載地址,下載后解壓,我們只需要里邊的Classes文件夾,將其改名為PHPExcel。我這里是基于thinkPHP5的,可以放置在app同級目錄的extend中。

PHP輸出Excel PHPExcel的方法

/*
  PHPExcel
 */
 public function excel(){

  Loader::import('PHPExcel.PHPExcel'); //thinkphp5加載類庫
  $objPHPExcel = new \PHPExcel();  //實例化PHPExcel類,
  $objSheet = $objPHPExcel->getActiveSheet();  //獲取當前活動的sheet對象
  $objSheet->setTitle("test");  //給當前活動sheet起個名稱

  /*字符串方式填充數據,開發中可以將數據庫取出的數據根據具體情況遍歷填充*/
  $objSheet->setCellValue("A1","姓名")->setCellValue("B1","分數")->setCellValue("C1","班級");  //填充數據
  // $objSheet->setCellValue("A2","張三")->setCellValue("B2","3434346354634563443634634634563")->setCellValue("C2","一班");  //填充數據
  $objSheet->setCellValue("A2","張三")->setCellValueExplicit("B2","123216785321321321312",\PHPExcel_Cell_DataType::TYPE_STRING)->setCellValue("C2","一班");//填充數據時添加此方法,并且使用getNumberFormat方法和setFormatCode方法設置,可以讓如訂單號等長串數字不使用科學計數法

  /*數組方式填充數據*/
  $arr = [
   [],  //空出第一行,打印出的效果將空出第一行
   ['','信息'],  //空出第一列,打印出的效果將空出第一列
   ['',"姓名\nname",'年齡','性別','分數','年級'],  //空出第一列,*這里的\n是為了*配合setWrapText自動換行
   ['','李四','33','男','33543653456346363646','4'], 
   ['','李四','33','男','54546456456447478548','4'], 
   ['','李四','33','男','56635374658465632545','5'], 
   ['','李四','33','男','87473457856856745646','5'], 
   ['','李四','33','男','32','7'], 
   ['','李四','33','男','98','5'], 
  ];
  $objSheet->fromArray($arr);  //填充數組數據,較為消耗資源且閱讀不便,不推薦


  /*樣式配置信息--方法配置*/
  $objSheet->mergecells("B2:F2");  //合并單元格
  $objSheet->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER)->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//設置excel文件默認水平垂直方向居中,垂直setVertical,水平setHorizontal,因為是基于thinkPHP5所以這里PHPExcel_Style_Alignment前使用"\"引入
  $objSheet->getDefaultStyle()->getFont()->setSize(14)->setName("微軟雅黑");//設置所有默認字體大小和格式
  $objSheet->getStyle("B2:F2")->getFont()->setSize(20)->setBold(true);//設置指定范圍內字體大小和加粗
  $objSheet->getDefaultRowDimension()->setRowHeight(33);//設置所有行默認行高
  $objSheet->getRowDimension(2)->setRowHeight(50);//設置指定行(第二行)行高
  $objSheet->getStyle("B2:F2")->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB('EEC591');//指定填充背景顏色,不需要加"#"定義樣式數組,字體,背景,邊框等都此方法設置,這里展示邊框
  $objSheet->getStyle("B3")->getAlignment()->setWrapText(true);//設置文字自動換行,要用getStyle()方法選中范圍,同時要在內容中添加"\n",而且該內容要用雙引號才會解析
  $objSheet->getStyle("E")->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT);//設置某列單元格格式為文本格式,便于禁用科學計數法

  /*數組配置*/
  $styleArray = array(
   'borders' => array(
    'outline' => array(
     'style' => \PHPExcel_Style_Border::BORDER_THICK,
     'color' => array('rgb' => 'EE0000'),
    ),
   ),
  );
  $objSheet->getStyle("B3:G3")->applyFromArray($styleArray);//設置指定區域的邊框,設置邊框必須要使用getStyle()選中范圍


  $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');//生成objWriter對象,Excel2007(xlsx)為指定格式,還有Excel5表示Excel2003(xls)

  /*瀏覽器查看,瀏覽器保存*/
  self::browser_excel('Excel2007','test.xlsx');//輸出到瀏覽器,參數1位Excel類型可為Excel5和Excel2007,第二個參數為文件名(需加后綴名),此方法為自定義
  $objWriter->save("php://output");  //save()里可以直接填寫保存路徑

  /*保存到知道路徑*/
  $objWriter->save(ROOT_PATH."excel.xlsx");  //save()里可以直接填寫保存路徑

}

自定義的瀏覽器header設置方法

/*
 瀏覽器打開時設置header頭
 $type excel版本類型 Excel5---Excel2003, Excel2007
 $filename 輸出的文件名
*/
 function browser_excel($type,$filename){
  if($type=="Excel5"){
    header('Content-Type: application/vnd.ms-excel');//告訴瀏覽器將要輸出excel03文件
  }else{
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');//告訴瀏覽器數據excel07文件
  }
  header('Content-Disposition: attachment;filename="'.$filename.'"');//告訴瀏覽器將輸出文件的名稱,要是沒有設置,會把當前文件名設置為名稱
  header('Cache-Control: max-age=0');//禁止緩存
}

想要獲取更完善的配置信息,百度PHPExcel中文文檔有很多參考資料。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩欧美推理片免费在线播放 | 7788理论片在线观看 | 国产精品久久国产精品99 gif | 国产成人成人一区二区 | 亚洲 欧美 中文字幕 在线 | 午夜免费啪视频观看视频 | 日本四虎影视 | 欧美最新在线 | 动漫白丝袜美女羞羞 | 无人区尖叫之夜美女姐姐视频 | 国内亚州视频在线观看 | 精品国产影院 | 成人日批视频 | 齐天大性之七仙女欲春迅雷链接 | 国产传媒天美果冻 | 福利入口在线观看 | 四虎永久免费地址ww417 | 扒开腚眼子视频大全 | 996热精品视频在线观看 | 欧美在线播放成人免费 | 四虎免费影院在线播放 | ts视频在线观看 | 女学生被老师调教在教室 | 99年水嫩漂亮粉嫩在线播放 | 草大逼 | 91精品综合 | 情侣奴伺候女王第2部分小说 | 欧美一级高清片免费一级 | 日本三级欧美三级人妇英文 | 欧美成人第一页 | 久久久久久免费高清电影 | 亚洲欧美成人综合久久久 | 精品国产自在现线拍400部 | 韩国三级日本三级香港三级黄 | 四虎国产精品免费入口 | 日韩欧美一区二区不卡 | 久久99热成人精品国产 | 91免费精品国自产拍在线可以看 | juliaann大战黑人 | 日本xx高清视频免费观看 | 女色在线观看免费视频 |