Thinkphp 3.2 导出表格
2020年6月9日1.下载PHPExcel
https://github.com/PHPOffice/PHPExcel
2.下载后将项目解压
1 2 3 4 5 6 7 |
#进入项目 cd PHPExcel-1.8 #将Classes 重命名为PHPExcel mv Classes PHPExcel #将重命名后的PHPExcel拷贝到Vendor mv PHPExcel /你的项目路径/ThinkPHP/Library/Vendor/ |
3.代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
public function tableExport() { vendor("PHPExcel.PHPExcel"); $objPHPExcel = new \PHPExcel(); $objPHPExcel->getActiveSheet()->setTitle('表格'); #所有单元格默认高度 $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(25); #第一行的默认高度 $objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30); #垂直居中 $objPHPExcel->getActiveSheet()->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); #设置水平居中 $objPHPExcel->getActiveSheet()->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); #Excel表格式 $letter = [ 'A','B','C','D', 'E','F','G','H', 'I','J','K','L', 'M','N','O','P', 'Q','R','S','T', 'U','V','W','X', 'Y','Z' ]; #表头数组 $tableheader = [ '融资主体','联系人','联系人职务','联系电话', '邮箱地址','开发商排名','开发商最高资质','项目占地面积', '容积率','项目位置','项目所属行业','项目获取方式', '项目开发阶段','资金用途','融资金额','融资成本', '融资期限','融资模式','风控担保措施','累计开发面积(万平方)', '累计服务业主数(户)','集团总总资产(亿)','集团净资产(亿)','项目备注', ]; #表格样式数据 $tablestyle = [ ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ['width' => '20'], ]; #填充表头信息 for ($i = 0; $i < count($tableheader); $i++) { $objPHPExcel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]"); $objPHPExcel->getActiveSheet()->getColumnDimension($letter[$i])->setWidth($tablestyle[$i]['width']); } #查询数据 $postData = M('post_data')->select(); #填充表格信息 foreach ($postData as $key => $value) { $i = $key + 2; $objPHPExcel->getActiveSheet()->setCellValue("$letter[0]$i" , "{$value['post_data']['xmrz_body']}"); $objPHPExcel->getActiveSheet()->setCellValue("$letter[1]$i" , "{$value['post_data']['contacts']}"); $objPHPExcel->getActiveSheet()->setCellValue("$letter[2]$i" , "{$value['post_data']['job']}"); $objPHPExcel->getActiveSheet()->setCellValue("$letter[3]$i" , "{$value['post_data']['iphone']}"); $objPHPExcel->getActiveSheet()->setCellValue("$letter[4]$i" , "{$value['post_data']['email']}"); $objPHPExcel->getActiveSheet()->setCellValue("$letter[5]$i" , "{$value['post_data']['developer_rank']}"); $objPHPExcel->getActiveSheet()->setCellValue("$letter[6]$i" , "{$value['post_data']['developer_qualification']}"); } $filename = THINK_PATH . '../data/excel/' . date("Y_m_d_H_i_s") . '.xls'; $write = new \PHPExcel_Writer_Excel5($objPHPExcel); $write->save($filename); header("Pragma: public"); header("Expires: 0"); 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/octet-stream"); header("Content-Type:application/download");; header('Content-Disposition:attachment;filename="项目信息'.date('Y_m_d_H_i_s').'.xls"'); header("Content-Transfer-Encoding:binary"); $write->save('php://output'); } |