#php导出Excel方法#

it2024-05-06  49

一:概括 1:通过导出的插件 PHPEXCEL导出 2:通过原始的方式,浏览器导出

二:实现方式 1:PHPEXCEL的方式。例如:

public function pushlist(){         $_REQUEST['rows']=i('rows',8000);         $_REQUEST['page']=i('page',1);         $_REQUEST['sidx']=s('sidx','user_id');         $_REQUEST['sord']=s('sord','asc');         $_REQUEST['user_account']=s('user_account');         $_REQUEST['user_nickname']=s('user_nickname');

          // echo"<pre>"; print_r( $_REQUEST);die;         $data = $this->getUrl('User_Info', 'lists', 'account');          // print_r($data['data']['items'][0]);die;           $tit= array(                 "序号",                 "用户ID",                 "用户账号",                 "用户昵称",                 "手机号",                 "注册时间"             );             $key = array(                 "user_id",                 "user_account",                 "user_nickname",                 "user_mobile",                 "user_reg_time"             );                  $this->excel("商品导出", $tit, $data['data']['items'], $key);         }                   public function excel($title, $tit, $con, $key)         {             ob_end_clean();   //***这里再加一个             $objPHPExcel = new PHPExcel();             $objPHPExcel->getProperties()->setCreator("mall_new");             $objPHPExcel->getProperties()->setLastModifiedBy("mall_new");             $objPHPExcel->getProperties()->setTitle($title);             $objPHPExcel->getProperties()->setSubject($title);             $objPHPExcel->getProperties()->setDescription($title);             $objPHPExcel->setActiveSheetIndex(0);             $objPHPExcel->getActiveSheet()->setTitle($title);             $objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);             $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);             //$objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(30);                  $letter = array(                 'A',                 'B',                 'C',                 'D',                 'E',                 'F',                 'G',                 'H',                 'I',                 'J',                 'K',                 'L',                 'M',                 'N',                 'O',                 'P',                 'Q',                 'R',                 'S',                 'T'             );                  foreach ($letter as $k => $v ) {                 $objPHPExcel->getActiveSheet()->getColumnDimension($v)->setWidth(30);                 //$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);             }                  foreach ($tit as $k1 => $v1)             {                 $objPHPExcel->getActiveSheet()->setCellValue($letter[$k1] . "1", $v1);             }             // foreach ($con as $k => $v)             // {             //     foreach ($key as $k2 => $v2)             //     {             //         $objPHPExcel->getActiveSheet()->setCellValue($letter[$k2] . ($k + 2), $v[$v2]);             //     }             // }                       foreach ($con as $k => $v)             {                 $objPHPExcel->getActiveSheet()->setCellValue($letter[0] . ($k + 2), $k + 1);                 foreach ($key as $k2 => $v2)                 {                          $objPHPExcel->getActiveSheet()->setCellValue($letter[$k2 + 1] . ($k + 2), $v[$v2]);                 }             }                  ob_end_clean();   //***这里再加一个             header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');             header("Content-Disposition: attachment; filename=\"$title.xls\"");             header('Cache-Control: max-age=0');             $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');             $objWriter->save('php://output');             exit;             die();         } 2:通过浏览器的方式,例如

// 导出数据信息

    public function exportExcel(array $header,array $data,$file_name=''){        !$file_name && $file_name = date("Y-m-d").".xls";        //组装头部标题         $head_txt = "<tr>";         foreach ($header as $v) {             $head_txt .= "<td>$v</td>";         }         $head_txt .= "</tr>";         $html = "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\nxmlns:x=\"urn:schemas-microsoft-com:office:excel\"\r\nxmlns=\"http://www.w3.org/TR/REC-html40\">\r\n<head>\r\n<meta http-equiv=Content-Type content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>";         $html .="<table border=1>" . $head_txt;         $html .= '';         //组装实体数据部分         foreach ($data as $key => $rt) {             $html .= "<tr>";             foreach ($rt as $v) {                 $html .= "<td >{$v}</td>";             }             $html .= "</tr>\n";         }         $html .= "</table></body></html>

最新回复(0)