当前位置:首页 > PHP教程 > php高级应用 > 列表

php 中mysql导出excel文件方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-08-29 13:37:06 浏览: 评论:0 

我们用最简单的方法直接用php+mysql来实现了,代码如下:

  1. <?php 
  2. include('db/db.php');  //包含连库类 
  3. $db = new db(); 
  4. $result = mysql_query('select * from market_sig into outfile "d:product3.xls";'); 
  5. var_dump($result); 
  6. ?> 

上面是我们的原生php结合了mysql outfile文件导出方法,这种方法有个问题就是不能实现下载功能,只在生成在服务器上.

下面方法更全面:下载PHPExcel:http://phpexcel.codeplex.com

先来看看代码,代码如下:

  1. <?php 
  2.  
  3. class Table_export extends CI_Controller { 
  4.  
  5. function __construct() 
  6. parent::__construct(); 
  7.  
  8. // Here you should add some sort of user validation 
  9. // to prevent strangers from pulling your table data 
  10.  
  11. function index($table_name
  12. $this->load->database(); 
  13. $query = $this->db->query("select * from `$table_name` WHERE del= 1"); 
  14. // $query = mb_convert_encoding("gb2312", "UTF-8", $query); 
  15. if(!$query
  16. return false; 
  17.  
  18. // Starting the PHPExcel library 
  19. $this->load->library('PHPExcel'); 
  20. $this->load->library('PHPExcel/IOFactory'); 
  21.  
  22. $objPHPExcel = new PHPExcel(); 
  23. $objPHPExcel->getProperties()->setTitle("export")->setDescription("none"); 
  24.  
  25. $objPHPExcel->setActiveSheetIndex(0) 
  26. ->setCellValue('A1', iconv('gbk''utf-8''中文Hello')) 
  27. ->setCellValue('B2''world!'
  28. ->setCellValue('C1''Hello'); 
  29. // Field names in the first row 
  30. $fields = $query->list_fields(); 
  31. $col = 0; 
  32. foreach ($fields as $field
  33. $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, 1, $field); 
  34. $col++; 
  35.  
  36. // Fetching the table data 
  37. $row = 2; 
  38. foreach($query->result() as $data
  39. $col = 0; 
  40. foreach ($fields as $field
  41. $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col$row$data->$field); 
  42. $col++; 
  43.  
  44. $row++; 
  45.  
  46. $objPHPExcel->setActiveSheetIndex(0); 
  47.  
  48. $objWriter = IOFactory::createWriter($objPHPExcel'Excel5'); 
  49.  
  50. //发送标题强制用户下载文件 
  51. header('Content-Type: application/vnd.ms-excel'); 
  52. header('Content-Disposition: attachment;filename="Products_'.date('dMy').'.xls"'); 
  53. header('Cache-Control: max-age=0'); 
  54. //开源代码phpfensi.com 
  55. $objWriter->save('php://output'); 
  56.  
  57. ?> 

看看配置方法吧.

1) 解压压缩包里的Classes文件夹中的内容到applicationlibraries目录下,目录结构如下:

-- applicationlibrariesPHPExcel.php

-- applicationlibrariesPHPExcel(文件夹)

2) 修改applicationlibrariesPHPExcelIOFactory.php 文件

-- 将其类名从PHPExcel_IOFactory改为IOFactory,遵从CI类命名规则.

-- 将其构造函数改为public.

还有很多方法像这种方法多喜欢用,因为phpexcel这个插件很实用,对excel表格操作方便.

Tags: mysql导出excel php导出excel

分享到: