国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > PHP > 正文

ThinkPHP框架實(shí)現(xiàn)導(dǎo)出excel數(shù)據(jù)的方法示例【基于PHPExcel】

2024-05-05 00:03:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了ThinkPHP框架實(shí)現(xiàn)導(dǎo)出excel數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:

在ThinkPHP框架下,導(dǎo)出excel數(shù)據(jù)的方法示例:

在操作前,應(yīng)該在系統(tǒng)框架的擴(kuò)展目錄中添加ORG庫(kù),即要包含ThinkPHP/Extend/Library/ORG/Util/PHPExcel.class.php文件及其相關(guān)支持文件。

<?phpheader("Content-type: text/html; charset=utf-8");class MesTestAction extends Action {  //測(cè)試導(dǎo)出excel數(shù)據(jù)  public function tpGetExcel() {    //創(chuàng)建對(duì)象    import("ORG.Util.PHPExcel"); //從PHPExcel目錄導(dǎo)PHPExcel.php類(lèi)文件    $excel = new PHPExcel();    $data = M()->query('SELECT userid,username,stepgoal FROM tp_data_user LIMIT 2775');    //Excel表格式,這里簡(jiǎn)略寫(xiě)了3列    $letter = array('A','B','C');    //表頭數(shù)組    $tableheader = array('userid','用戶(hù)名','目標(biāo)步數(shù)');    $count= count($data);//總的數(shù)據(jù)行數(shù)    $listNum = 500;//每個(gè)sheet頁(yè)最大數(shù)據(jù)行數(shù)    $num = ceil($count/$listNum);//sheet頁(yè)個(gè)數(shù)    $MuitData = array_chunk($data,$listNum,false);//分割總的數(shù)據(jù),每頁(yè)最多$listNum行有效數(shù)據(jù)  //var_dump($MuitData);//die('as');  //缺省情況下,PHPExcel會(huì)自動(dòng)創(chuàng)建第一個(gè)SHEET,其索引SheetIndex=0  //設(shè)置 當(dāng)前處于活動(dòng)狀態(tài)的SHEET 為PHPExcel自動(dòng)創(chuàng)建的第一個(gè)SHEET  $excel->setActiveSheetIndex(0); //objPHPExcel  //設(shè)置sheet的title  $excel->getActiveSheet()->setTitle('考核得分第'.'1'.'頁(yè)');  //設(shè)置sheet的列名稱(chēng)    for($k = 0; $k < count($tableheader); ++$k) {      $excel->getActiveSheet()->setCellValue("$letter[$k]".'1',"$tableheader[$k]");//第一行數(shù)據(jù)    }  //填充表格信息 處理第1塊數(shù)據(jù)  $crrntSheetLineNo = count($MuitData[0]) + 1;  for ( $j = 2; $j <= $crrntSheetLineNo; ++$j) { //遍歷每一行    $k = 0;    foreach ( $MuitData[0][$j - 2] as $key => $value ) {//遍歷具體行的某一列      $excel->getActiveSheet()->setCellValue("$letter[$k]".$j,"$value");//第$k列 第$j行      $k++;    }  }  //后續(xù)的sheet頁(yè)及數(shù)據(jù)塊    for ( $i = 1; $i <$num; ++$i) {      //創(chuàng)建第$i個(gè)sheet      $msgWorkSheet = new PHPExcel_Worksheet($excel, '考核得分第'.($i + 1).'頁(yè)'); //創(chuàng)建一個(gè)工作表      $excel->addSheet($msgWorkSheet); //插入工作表      $excel->setActiveSheetIndex($i); //切換到新創(chuàng)建的工作表      //設(shè)置sheet的列名稱(chēng)      for($k = 0; $k < count($tableheader); ++$k) {        $excel->getActiveSheet()->setCellValue("$letter[$k]1","$tableheader[$k]");//第一行數(shù)據(jù)      }      //填充表格信息 處理第$i塊數(shù)據(jù)    $crrntSheetLineNo = count($MuitData[$i]) + 1; //var_dump($crrntSheetLineNo);var_dump($MuitData[$i-1]);die('as');      for ( $j = 2; $j <= $crrntSheetLineNo; ++$j) { //遍歷每一行        $k = 0;        foreach ( $MuitData[$i-1][$j - 2] as $key => $value ) {//遍歷具體行的某一列          $excel->getActiveSheet()->setCellValue("$letter[$k]$j","$value");//第$k列 第$j行          ++$k;        }      }      usleep(100);    }    //創(chuàng)建Excel輸出對(duì)象    $filename = "大獎(jiǎng)賽培訓(xùn)考核得分.xls";    $write = new PHPExcel_Writer_Excel5($excel);    ob_end_clean();//清除緩沖區(qū),避免亂碼  /*  //輸出到本地    $write->save( iconv('utf-8', 'gbk', $filename) );  */    //輸出到瀏覽器    header("Pragma: public");    header("Expires: 0");    header("Cache-Control:must-revalidate, post-check=0, pre-check=0");    header("Content-Type:application/force-download");    header("Content-Type:application/vnd.ms-execl");    header("Content-Type:application/download");    header('Content-Type:application/octet-stream');    $encoded_filename = urlencode($filename);    $encoded_filename = str_replace("+", "%20", $encoded_filename);    $ua = $_SERVER["HTTP_USER_AGENT"];    if (preg_match("/MSIE/", $ua)) {      header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');    } else if (preg_match("/Firefox/", $ua)) {      header('Content-Disposition: attachment; filename*="utf8/'/'' . $filename . '"');    } else {      header('Content-Disposition: attachment; filename="' . $filename . '"');    }    header("Content-Transfer-Encoding:binary");    $write->save('php://output');  }}?>

 

希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到PHP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 兴仁县| 临潭县| 绥滨县| 连云港市| 宜春市| 稷山县| 西吉县| 河间市| 公主岭市| 石渠县| 洛川县| 武威市| 宁河县| 格尔木市| 马龙县| 台山市| 宁化县| 临夏县| 小金县| 汝南县| 威宁| 沅陵县| 九江县| 个旧市| 临海市| 年辖:市辖区| 泽州县| 忻城县| 紫金县| 宝山区| 同心县| 南溪县| 伊金霍洛旗| 禹城市| 遂溪县| 崇明县| 芜湖市| 鹿邑县| 关岭| 旬阳县| 开鲁县|