最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

thinkPHP+phpexcel實(shí)現(xiàn)excel報(bào)表輸出功能示例

 更新時(shí)間:2017年06月06日 10:46:00   作者:小伢子  
這篇文章主要介紹了thinkPHP+phpexcel實(shí)現(xiàn)excel報(bào)表輸出功能,結(jié)合具體實(shí)例形式分析了thinkPHP整合PHPExcel實(shí)現(xiàn)針對(duì)Excel文件相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了thinkPHP+phpexcel實(shí)現(xiàn)excel報(bào)表輸出功能。分享給大家供大家參考,具體如下:

準(zhǔn)備工作:

1.下載phpexcel1.7.6類包;

2.解壓至TP框架的ThinkPHP\Vendor目錄下,改類包文件夾名為PHPExcel176,目錄結(jié)構(gòu)如下圖;

編寫代碼(以一個(gè)訂單匯總數(shù)據(jù)為例):

  1. 創(chuàng)建數(shù)據(jù)庫(kù)及表;
  2. 創(chuàng)建tp項(xiàng)目,配置項(xiàng)目的數(shù)據(jù)庫(kù)連接,這些基本的就不說(shuō)了;
  3. 在項(xiàng)目的Lib\Action下創(chuàng)建一個(gè)新的類文件ExportStatisticsAction.class.php,然后在  index方法中實(shí)現(xiàn)excel導(dǎo)出;
  4. 導(dǎo)出方法的步驟:
    ①查詢數(shù)據(jù)
    ②導(dǎo)入phpexcel類庫(kù)
    ③創(chuàng)建excel對(duì)象并設(shè)置excel對(duì)象的屬性
    ④設(shè)置excel的行列樣式(字體、高寬、顏色、邊框、合并等)
    ⑤繪制報(bào)表表頭
    ⑥將查詢數(shù)據(jù)寫入excel
    ⑦設(shè)置excel的sheet的名稱
    ⑧設(shè)置excel報(bào)表打開后初始的sheet
    ⑨設(shè)置輸出的excel的頭參數(shù)及文件名
    ⑩調(diào)用創(chuàng)建excel的方法生成excel文件

代碼如下:

<?php
/**
 * Created by lonm.shi.
 * Date: 2012-02-09
 * Time: 下午4:54
 * To change this template use File | Settings | File Templates.
 */
class ExportStatisticsAction extends Action {
  public function index(){
    $model= D("OrdersView");
    $OrdersData= $model->select(); //查詢數(shù)據(jù)得到$OrdersData二維數(shù)組
    vendor("PHPExcel176.PHPExcel");
    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();
    // Set properties
    $objPHPExcel->getProperties()->setCreator("ctos")
      ->setLastModifiedBy("ctos")
      ->setTitle("Office 2007 XLSX Test Document")
      ->setSubject("Office 2007 XLSX Test Document")
      ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
      ->setKeywords("office 2007 openxml php")
      ->setCategory("Test result file");
    //set width
    $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(8);
    $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);
    $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25);
    $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
    $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(50);
    $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(10);
    $objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(12);
    $objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(12);
    $objPHPExcel->getActiveSheet()->getColumnDimension('I')->setWidth(12);
    $objPHPExcel->getActiveSheet()->getColumnDimension('J')->setWidth(30);
    //設(shè)置行高度
    $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(22);
    $objPHPExcel->getActiveSheet()->getRowDimension('2')->setRowHeight(20);
    //set font size bold
    $objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10);
    $objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getFont()->setBold(true);
    $objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    $objPHPExcel->getActiveSheet()->getStyle('A2:J2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
    //設(shè)置水平居中
    $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
    $objPHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $objPHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $objPHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $objPHPExcel->getActiveSheet()->getStyle('F')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $objPHPExcel->getActiveSheet()->getStyle('G')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $objPHPExcel->getActiveSheet()->getStyle('H')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $objPHPExcel->getActiveSheet()->getStyle('I')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    //合并cell
    $objPHPExcel->getActiveSheet()->mergeCells('A1:J1');
    // set table header content
    $objPHPExcel->setActiveSheetIndex(0)
      ->setCellValue('A1', '訂單數(shù)據(jù)匯總 時(shí)間:'.date('Y-m-d H:i:s'))
      ->setCellValue('A2', '訂單ID')
      ->setCellValue('B2', '下單人')
      ->setCellValue('C2', '客戶名稱')
      ->setCellValue('D2', '下單時(shí)間')
      ->setCellValue('E2', '需求機(jī)型')
      ->setCellValue('F2', '需求數(shù)量')
      ->setCellValue('G2', '需求交期')
      ->setCellValue('H2', '確認(rèn)BOM料號(hào)')
      ->setCellValue('I2', 'PMC確認(rèn)交期')
      ->setCellValue('J2', 'PMC交貨備注');
    // Miscellaneous glyphs, UTF-8
    for($i=0;$i<count($OrdersData)-1;$i++){
      $objPHPExcel->getActiveSheet(0)->setCellValue('A'.($i+3), $OrdersData[$i]['id']);
      $objPHPExcel->getActiveSheet(0)->setCellValue('B'.($i+3), $OrdersData[$i]['realname']);
      $objPHPExcel->getActiveSheet(0)->setCellValue('C'.($i+3), $OrdersData[$i]['customer_name']);
      $objPHPExcel->getActiveSheet(0)->setCellValue('D'.($i+3), toDate($OrdersData[$i]['create_time'])); //這里調(diào)用了common.php的時(shí)間戳轉(zhuǎn)換函數(shù)
      $objPHPExcel->getActiveSheet(0)->setCellValue('E'.($i+3), $OrdersData[$i]['require_product']);
      $objPHPExcel->getActiveSheet(0)->setCellValue('F'.($i+3), $OrdersData[$i]['require_count']);
      $objPHPExcel->getActiveSheet(0)->setCellValue('G'.($i+3), $OrdersData[$i]['require_time']);
      $objPHPExcel->getActiveSheet(0)->setCellValue('H'.($i+3), $OrdersData[$i]['product_bom_encoding']);
      $objPHPExcel->getActiveSheet(0)->setCellValue('I'.($i+3), $OrdersData[$i]['delivery_time']);
      $objPHPExcel->getActiveSheet(0)->setCellValue('J'.($i+3), $OrdersData[$i]['delivery_memo']);
      $objPHPExcel->getActiveSheet()->getStyle('A'.($i+3).':J'.($i+3))->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
      $objPHPExcel->getActiveSheet()->getStyle('A'.($i+3).':J'.($i+3))->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
      $objPHPExcel->getActiveSheet()->getRowDimension($i+3)->setRowHeight(16);
    }
    // sheet命名
    $objPHPExcel->getActiveSheet()->setTitle('訂單匯總表');
    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
    $objPHPExcel->setActiveSheetIndex(0);
    // excel頭參數(shù)
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="訂單匯總表('.date('Ymd-His').').xls"'); //日期為文件名后綴
    header('Cache-Control: max-age=0');
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //excel5為xls格式,excel2007為xlsx格式
    $objWriter->save('php://output');
  }
}

5.調(diào)用導(dǎo)出方法直接  http://項(xiàng)目/index.php/ExportStatistics/index,項(xiàng)目中調(diào)用直接__APP__/ExportStatistics/index,生成的報(bào)表是下載方式來(lái)保存。phpexcel1.7.6沒有發(fā)現(xiàn)什么編碼問題,速度也很快,注意導(dǎo)出的方法中不能有任何頁(yè)面輸出信息或調(diào)試信息,否則導(dǎo)出的excel會(huì)提示格式不對(duì)。效果如下:

導(dǎo)出報(bào)表

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。

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

相關(guān)文章

  • ThinkPHP的I方法使用詳解

    ThinkPHP的I方法使用詳解

    ThinkPHP的I方法是眾多單字母函數(shù)中的新成員,主要用于更加方便和安全的獲取系統(tǒng)輸入變量,可以用于任何地方。這篇文章主要介紹了ThinkPHP的I方法,需要的朋友可以參考下
    2014-06-06
  • 學(xué)習(xí)php分頁(yè)代碼實(shí)例

    學(xué)習(xí)php分頁(yè)代碼實(shí)例

    學(xué)習(xí)PHP,一定會(huì)遇到操作MYSQL數(shù)據(jù)庫(kù),而且會(huì)對(duì)數(shù)據(jù)庫(kù)里的數(shù)據(jù)做分頁(yè)顯示出來(lái)的問題,下面寫一個(gè)小例子學(xué)習(xí)一下PHP分頁(yè)的方法。
    2013-10-10
  • 如何使用GDB調(diào)試PHP程序

    如何使用GDB調(diào)試PHP程序

    GDB是GNU開源組織發(fā)布的一個(gè)強(qiáng)大的UNIX下的程序調(diào)試工具。如果你是在 UNIX平臺(tái)下做軟件,你會(huì)發(fā)現(xiàn)GDB這個(gè)調(diào)試工具有比VC、BCB的圖形化調(diào)試器更強(qiáng)大的功能。同時(shí)GDB也具有例如ddd這樣的圖形化的調(diào)試端
    2015-12-12
  • 兼容各大瀏覽器帶關(guān)閉按鈕的漂浮多組圖片廣告代碼

    兼容各大瀏覽器帶關(guān)閉按鈕的漂浮多組圖片廣告代碼

    給大家分析一段經(jīng)典而且兼容各大瀏覽器的漂浮廣告代碼,希望對(duì)大家有所幫助
    2014-06-06
  • Laravel5.1 框架表單驗(yàn)證操作實(shí)例詳解

    Laravel5.1 框架表單驗(yàn)證操作實(shí)例詳解

    這篇文章主要介紹了Laravel5.1 框架表單驗(yàn)證操作,結(jié)合實(shí)例形式詳細(xì)分析了laravel5.1框架表單驗(yàn)證的具體實(shí)現(xiàn)步驟、實(shí)現(xiàn)方法及相關(guān)操作技巧,需要的朋友可以參考下
    2020-01-01
  • php實(shí)現(xiàn)數(shù)組重復(fù)數(shù)字統(tǒng)計(jì)實(shí)例

    php實(shí)現(xiàn)數(shù)組重復(fù)數(shù)字統(tǒng)計(jì)實(shí)例

    在本篇文章里我們給大家?guī)?lái)一個(gè)關(guān)于php實(shí)現(xiàn)數(shù)組重復(fù)數(shù)字統(tǒng)計(jì)的實(shí)例,有用到的朋友們參考下。
    2018-09-09
  • thinkphp5.1框架模板布局與模板繼承用法分析

    thinkphp5.1框架模板布局與模板繼承用法分析

    這篇文章主要介紹了thinkphp5.1框架模板布局與模板繼承用法,結(jié)合實(shí)例形式分析了thinkPHP5.1框架模板布局與模板繼承相關(guān)配置、調(diào)用、操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • 基于jQueryUI和Corethink實(shí)現(xiàn)百度的搜索提示功能

    基于jQueryUI和Corethink實(shí)現(xiàn)百度的搜索提示功能

    這篇文章主要介紹了基于jQueryUI和Corethink實(shí)現(xiàn)百度的搜索提示功能,這里是以corethink模塊的形式,只需要安裝上訪問index.php?s=/test/index 就可以了,需要的朋友可以參考下
    2016-11-11
  • PHP保留兩位小數(shù)并且四舍五入及不四舍五入的方法

    PHP保留兩位小數(shù)并且四舍五入及不四舍五入的方法

    PHP保留兩位小數(shù)并且四舍五入及保留兩位小數(shù)并且不四舍五入該如何實(shí)現(xiàn),不會(huì)的朋友可以詳細(xì)參考下本文,希望對(duì)大家有所幫助
    2013-09-09
  • thinkphp3.2.3 分頁(yè)代碼分享

    thinkphp3.2.3 分頁(yè)代碼分享

    這篇文章主要為大家介紹了thinkphp3.2.3 分頁(yè)代碼,非常實(shí)用的代碼,感興趣的小伙伴們可以參考一下
    2016-07-07

最新評(píng)論

湛江市| 龙井市| 独山县| 周宁县| 双辽市| 突泉县| 东安县| 囊谦县| 涿鹿县| 奉化市| 廉江市| 田东县| 绿春县| 绍兴县| 固始县| 阆中市| 聂荣县| 都安| 太和县| 辰溪县| 德州市| 湘潭市| 乐昌市| 永新县| 固安县| 敦煌市| 韩城市| 通海县| 罗甸县| 安达市| 辽中县| 安西县| 商水县| 大宁县| 平泉县| 庄河市| 罗甸县| 镇康县| 奉新县| 博乐市| 乐清市|