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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP 导出数据到Excel

發布時間:2024/1/18 php 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP 导出数据到Excel 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[手動狗臉]

交代一下背景:用的是TP 的框架,導出用的插件是PHPExcel

以下為目錄結構:


直接上代碼

class ExportAction extends Action {/*** Excel導出* @param $fileName(文件名)* @param $headArr (表頭)* @param $data (每一行的數據)* @throws \PHPExcel_Exception* @throws \PHPExcel_Reader_Exception*/function exportExcel(){include_once(THINK_PATH . "Extend/Vendor/PHPExcel/PHPExcel.php");include_once(THINK_PATH . "Extend/Vendor/PHPExcel/PHPExcel/Writer/Excel2007.php");include_once(THINK_PATH . "Extend/Vendor/PHPExcel/PHPExcel/Writer/Excel5.php");include_once(THINK_PATH . "Extend/Vendor/PHPExcel/PHPExcel/IOFactory.php");$data = self::getData();$fileName="數據詳情";$headArr=self::getColumn();if (empty($data) || !is_array($data)) {die("data must be a array");}if (empty($fileName)) {exit;}$date = date("Y_m_d", time());$fileName .= "_{$date}.xlsx";//創建新的PHPExcel對象$objPHPExcel = new \PHPExcel();$objProps = $objPHPExcel->getProperties();//設置表頭$key = ord("A");$key2 = ord("A");$colum2 = '';$objActSheet = $objPHPExcel->getActiveSheet();$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25);foreach ($headArr as $v) {$colum = chr($key);$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum2 . $colum . '1', $v);if ($key < 90) {$key += 1;} else {$key = ord("A");$colum2 = chr($key2);$key2++;}}//exit;$column = 2;foreach ($data as $key => $rows) { //行寫入$span = ord("A");$span2 = ord("A");$j2 = '';foreach ($rows as $keyName => $value) {// 列寫入$j = chr($span);//$objActSheet->setCellValue($j.$column, $value);//把每個單元格設置成分文本類型//dump($j2.$j.$column);$objActSheet->setCellValueExplicit($j2 . $j . $column, $value, \PHPExcel_Cell_DataType::TYPE_STRING);if ($span < 90) {$span += 1;} else {$span = ord("A");$j2 = chr($span2);$span2++;}}$column++;}// exit;$fileName = iconv("utf-8", "gb2312", $fileName);//重命名表$objPHPExcel->getActiveSheet()->setTitle('Simple');//設置活動單指數到第一個表,所以Excel打開這是第一個表$objPHPExcel->setActiveSheetIndex(0);//將輸出重定向到一個客戶端web瀏覽器(Excel2007)header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');header("Content-Disposition: attachment; filename=\"$fileName\"");header('Cache-Control: max-age=0');$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');if (!empty($_GET['excel'])) {$objWriter->save('php://output'); //文件通過瀏覽器下載} /*else {$objWriter->save($fileName); //腳本方式運行,保存在當前目錄}*/$objWriter->save('php://output');exit;}// 處理問卷調查數據function getData(){$answer = M("answer");$where['id'] = $_GET['id'];$answer->where($where)->getField("answers");$studentList = [['20190101', 'student01', '1班','school2'],['20190102','student02', '1班'],['20190103','student03', '1班','school3']];return $studentList;}//Excel 列標題protected function getColumn(){$collist=['名字','學校','班級','年齡','a5','a6','a7','a8','a9','a10','a11','a12','a13','a14','a15','a16','a17','b1','b2','b3','b4','b5','b6','c1','c2','c3','c4','c5','c6','c7','c8','c9','c10','c11','c12', 'd1','d2','d3','d4', 'e1 ','e2','e3','e4','e5','e6','e7','e8','e9','e10','e11','f1','f2','f3','f4','f5','f6','f7','f8','f9','g1','g2','g3','g4','g5','g6','g7','g8','g9','g10','g11','g12','g13','g14','g15','g16','g17','g18','g19','g20','g21','g22','g23','g24','g25','g26','g27','g28','g29','g30','g31','g32','g33','g34','g35'];return $collist;} }

附上效果圖:

參考鏈接:www.jb51.net/article/147099.htm

總結

以上是生活随笔為你收集整理的PHP 导出数据到Excel的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。