PHP导出数据表数据生成Excel表格文件

忘是亡心i 2022-06-12 10:45 347阅读 0赞

有些时候我们会遇到将数据库的数据导出生成Excel表格,比如名单表等等。。。

接下来 我提供两种使用PHP将数据表信息导出生成Excel表格的方法,其中第一种为自己使用的,在Thinkphp下。第二种为使用比较多的PHPExcel,网上看到的,经测试完全没问题。

1.直接自己进行代码拼接生成表格

  1. <?php
  2. //导出excel
  3. public function excel(){
  4. ob_end_clean();
  5. header("Content-Type:application/vnd.ms-excel;charset=UTF-8");
  6. header("Pragma: public");
  7. header("Expires: 0");
  8. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  9. header("Content-Type: application/force-download");
  10. header("Content-Type: application/octet-stream");
  11. header("Content-Type: application/download");
  12. header("Content-Disposition: attachment;filename=".'报名表'.".xls");
  13. header("Content-Transfer-Encoding: binary ");
  14. $model = M("enroll");//实例化数据表
  15. $result = $model->where('writetime desc')->select();
  16. foreach ($result as $k => &$v) {
  17. $data[$k]['id'] = $k+1;
  18. $data[$k]['username'] = $v['username'];
  19. $data[$k]['mobile'] = $v['mobile'];
  20. $data[$k]['drivedate'] = $v['drivedate'];
  21. $data[$k]['drivetime'] = $v['drivetime'];
  22. }
  23. $str.='<table border="1" width="1000">';
  24. $str.='<tr>
  25. <th>编号</th><th>姓名</th><th>电话</th><th>预约日期</th><th>预约时间</th>
  26. </tr>';
  27. $str=iconv('UTF-8','GB2312',$str);
  28. foreach ($data as $key=>&$value) {
  29. $str.='<tr>';
  30. foreach ($value as $k=>$v) {
  31. $str.='<td Class="format" style="align:center">'.iconv('UTF-8','GBK',' '.$v).'</td>';
  32. }
  33. $str.='</tr>';
  34. }
  35. $str.='</table>';
  36. echo ($str);die();
  37. }

2.使用比较流行的 PHPExcel生成表格

  1. /**
  2. * 数组转xls格式的excel文件
  3. * @param array $data 需要生成excel文件的数组
  4. * @param string $filename 生成的excel文件名
  5. * 示例数据:
  6. $data = array(
  7. array(NULL, 2010, 2011, 2012),
  8. array('Q1', 12, 15, 21),
  9. array('Q2', 56, 73, 86),
  10. array('Q3', 52, 61, 69),
  11. array('Q4', 30, 32, 0),
  12. );
  13. */
  14. function createXls($data,$filename='simple.xls'){
  15. ini_set('max_execution_time', '0');
  16. include_once './PHPExcel/PHPExcel.php';
  17. $filename=str_replace('.xls', '', $filename).'.xls';
  18. $phpexcel = new PHPExcel();
  19. $phpexcel->getProperties()
  20. ->setCreator("Maarten Balliauw")
  21. ->setLastModifiedBy("Maarten Balliauw")
  22. ->setTitle("Office 2007 XLSX Test Document")
  23. ->setSubject("Office 2007 XLSX Test Document")
  24. ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
  25. ->setKeywords("office 2007 openxml php")
  26. ->setCategory("Test result file");
  27. $phpexcel->getActiveSheet()->fromArray($data);
  28. $phpexcel->getActiveSheet()->setTitle('Sheet1');
  29. $phpexcel->setActiveSheetIndex(0);
  30. header('Content-Type: application/vnd.ms-excel');
  31. header("Content-Disposition: attachment;filename=$filename");
  32. header('Cache-Control: max-age=0');
  33. header('Cache-Control: max-age=1');
  34. header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
  35. header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
  36. header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
  37. header ('Pragma: public'); // HTTP/1.0
  38. $objwriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel5');
  39. $objwriter->save('php://output');
  40. exit;
  41. }
  42. // 数据
  43. $data = array(
  44. array('姓名', '性别', '出生时间'),
  45. array('小明', '男', '2012-01-21'),
  46. array('小红', '女', '2011-04-12'),
  47. );
  48. // 文件名
  49. $fileName = '个人信息' + date('YmdHis');
  50. // 生成xls格式的excel文件
  51. createXls($data, $fileName);

PHPExcel点击下载

密码:0ses

发表评论

表情:
评论列表 (有 0 条评论,347人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Excel表格导出

    开发工具与关键技术:MVC 作者:文泽钦 撰写时间:2019年5月25日 员工数据导出到excel表格,导出前要对数据处理,因为一个项目可以导出的数据比较多,在导出前