溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php如何導(dǎo)出excel表格?

發(fā)布時(shí)間:2020-05-15 15:30:38 來(lái)源:億速云 閱讀:260 作者:Leah 欄目:編程語(yǔ)言

php如何導(dǎo)出excel表格?針對(duì)這個(gè)問題,今天小編總結(jié)這篇有關(guān)php導(dǎo)出表格的文章,希望幫助更多想學(xué)習(xí)php的同學(xué)找到更加簡(jiǎn)單易行的辦法。

首先下載PHPExcel包并將包引入到項(xiàng)目中;然后實(shí)例化PHPExcel對(duì)象;接著設(shè)置表格的列,以及列隊(duì)屬性;再將數(shù)據(jù)添加到表格中;最后將表格文件數(shù)據(jù)輸出即可。

PHPExcel

是用來(lái)操作Office Excel 文檔的一個(gè)PHP類庫(kù),它基于微軟的OpenXML標(biāo)準(zhǔn)和PHP語(yǔ)言。可以使用它來(lái)讀取、寫入不同格式的電子表格

ThinkPHP示例

public function exportExcel()
{
    //先獲取數(shù)據(jù)
    $where['comid'] = session('uid');
    $res = M('cheliang')->where($where)->select();
   // var_dump($res);die;

    //下面就是導(dǎo)出的步驟了
    vendor('PHPExcel0.Classes.PHPExcel');

    $objPHPExcel = new \PHPExcel();
    $objPHPExcel->createSheet(0);
    $objPHPExcel->setActiveSheetIndex(0);
   //只需要把你想要的字段改成你自己需要的就可以了?。?!
        $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', '考試人')
            ->setCellValue('B1', '車牌')
            ->setCellValue('C1', '考試時(shí)間')
            ->setCellValue('D1', '考試分?jǐn)?shù)')
            ->setCellValue('E1', '簽名');

        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);//設(shè)置單元格寬度
        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(50);//設(shè)置單元格寬度
        $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);//設(shè)置單元格寬度
        $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20);//設(shè)置單元格寬度
        $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);      //第一行是否加粗
        $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);      //第一行是否加粗
        $objPHPExcel->getActiveSheet()->getStyle('C1')->getFont()->setBold(true);      //第一行是否加粗
        $objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->setBold(true);      //第一行是否加粗
        $objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->setBold(true);      //第一行是否加粗
        //$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(16);         //第一行字體大小
        // 設(shè)置垂直居中
        $objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
        $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
        $objPHPExcel->getActiveSheet()->getStyle('C1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
        $objPHPExcel->getActiveSheet()->getStyle('D1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
        $objPHPExcel->getActiveSheet()->getStyle('E1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);

        // 設(shè)置行高度
        $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(20); //設(shè)置默認(rèn)行高
        $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30);    //第一行行高
        //循環(huán)添加數(shù)據(jù),注意的是下面的$kk+2,是因?yàn)?kk是下標(biāo),從0開始的,而第一行是你的標(biāo)題,所以要從第二行開始才是你的數(shù)據(jù)
        foreach ($data as $kk => $vv) {
            $no = $kk + 2;
                $currentSheet = $objPHPExcel->getActiveSheet();
                $currentSheet->setCellValue('A' . $no, $vv['xueyuan']['name']);
                $currentSheet->setCellValue('B' . $no, $vv['xueyuan']['chepaihao']);
                $currentSheet->setCellValue('C' . $no, date('Y-m-d H:i:s',$vv['addtime']).'至'.date('Y-m-d H:i:s',$vv['sbttime']));
                $currentSheet->setCellValue('D' . $no, $vv['score']);
                //設(shè)置單元格高度,這個(gè)是重點(diǎn)哦
                $currentSheet->getRowDimension($no) -> setRowHeight(40);
                // 圖片生成
                $objDrawing[$kk] = new \PHPExcel_Worksheet_Drawing();//這個(gè)就是生成圖片的類(重點(diǎn))
                $objDrawing[$kk]->setPath('./'.$vv['qmimg']);/圖片的路徑
                // 設(shè)置寬度高度
                $objDrawing[$kk]->setHeight(85);//照片高度
                $objDrawing[$kk]->setWidth(100); //照片寬度
                /*設(shè)置圖片要插入的單元格*/
                $objDrawing[$kk]->setCoordinates('E'.$no);
                // 圖片偏移距離
                 $objDrawing[$kk]->setOffsetX(12);
                 $objDrawing[$kk]->setOffsetY(12);
                $objDrawing[$kk]->setWorksheet($objPHPExcel->getActiveSheet());
        }

    $objPHPExcel->setActiveSheetIndex(0);
    header('Content-Type: application/vnd.ms-excel');

    header('Content-Disposition: attachment;filename="' . '文件名稱'. '.xls"');
    header('Cache-Control: max-age=0');
    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    $objWriter->save('php://output');
    exit;
}

以上就是php導(dǎo)出表格的具體操作,代碼詳細(xì)清楚,如果在日常工作遇到這個(gè)問題,希望你能通過(guò)這篇文章解決問題。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI