首页 > 开发 > PHP > 正文

用PHP生成excel文件到指定目录

2024-05-04 23:36:45
字体:大 中 小
来源:转载
供稿:网友

这篇文章主要介绍了用PHP生成excel文件到指定目录的相关资料,需要的朋友可以参考下

最近公司要生成报表,用PHP生成。

header("Content-type:application/vnd.ms-excel");

header("Content-Disposition:attachment;filename=test_data.xls");

我百度了下,貌似这个很快能够实现,但是这个文件却是生成在在浏览器下载的地方,

我想把生成的文件生成到指定的目录,这样能否实现呢?

还有,可以往里面插入图片吗?

PHPExcel是英文的,看了半天没看懂。有没有直接生成的例子看啊?

下面我们附上例子:

 

 
  1. /** 
  2. +---------------------------------------------------------- 
  3. * 导入所需的类库 同java的Import 
  4. * 本函数有缓存功能 
  5. +---------------------------------------------------------- 
  6. * @param string $class 类库命名空间字符串 
  7. * @param string $baseUrl 起始路径 
  8. * @param string $ext 导入的文件扩展名 
  9. +---------------------------------------------------------- 
  10. * @return boolen 
  11. +---------------------------------------------------------- 
  12. */ 
  13. function import($class, $baseUrl = '', $ext='.class.php') { 
  14. static $_file = array(); 
  15. $class = str_replace(array('.', '#'), array('/', '.'), $class); 
  16. if ('' === $baseUrl && false === strpos($class, '/')) { 
  17. // 检查别名导入 
  18. return alias_import($class); 
  19. } 
  20. if (isset($_file[$class . $baseUrl])) 
  21. return true; 
  22. else 
  23. $_file[$class . $baseUrl] = true; 
  24. $class_strut = explode('/', $class); 
  25. if (emptyempty($baseUrl)) { 
  26. if ('@' == $class_strut[0] || APP_NAME == $class_strut[0]) { 
  27. //加载当前项目应用类库 
  28. $baseUrl = dirname(LIB_PATH); 
  29. $class = substr_replace($class, basename(LIB_PATH).'/', 0, strlen($class_strut[0]) + 1); 
  30. }elseif ('think' == strtolower($class_strut[0])){ // think 官方基类库 
  31. $baseUrl = CORE_PATH; 
  32. $class = substr($class,6); 
  33. }elseif (in_array(strtolower($class_strut[0]), array('org', 'com'))) { 
  34. // org 第三方公共类库 com 企业公共类库 
  35. $baseUrl = LIBRARY_PATH; 
  36. }else { // 加载其他项目应用类库 
  37. $class = substr_replace($class, '', 0, strlen($class_strut[0]) + 1); 
  38. $baseUrl = APP_PATH . '../' . $class_strut[0] . '/'.basename(LIB_PATH).'/'; 
  39. } 
  40. } 
  41. if (substr($baseUrl, -1) != '/') 
  42. $baseUrl .= '/'; 
  43. $classfile = $baseUrl . $class . $ext; 
  44. if (!class_exists(basename($class),false)) { 
  45. // 如果类不存在 则导入类库文件 
  46. return require_cache($classfile); 
  47. } 
  48. } 
  49.  
  50. /** 
  51. * 导出EXCEL表格 
  52. * @param array $data 数据,二维数组,每条数据一条记录 
  53. * @param array $title 每列数据的字段名,一唯数组,必须和数据顺序一致(可省略) 
  54. * @param string $filename excel名称 
  55. * @param array $field 需要指定导出的数据字段,排序必须和title一致,就是和查出数据的数组key值 
  56. */ 
  57. function exportExcel($data='',$title='',$filename='excel',$field=array()){ 
  58. if(!$data || !is_array($data)) return false; 
  59. if($filename=='') $filename='excel'; 
  60. if($field && is_array($field)){//只要导出指定字段,且按这个顺序导出 
  61. $dateNew=array(); 
  62. foreach ($data as $k=>$v){ 
  63. foreach ($field as $fkey){ 
  64. $dateNew[$k][$fkey]=$v[$fkey]; 
  65. } 
  66. } 
  67. $data=$dateNew; 
  68. } 
  69.  
  70. import("@.ORG.Util.ExcelXml");//调用导出excel类 
  71. $xls = new ExcelXml('UTF-8', false, 'Sheet1'); 
  72. $xls->addArray($data,$title); 
  73. $xls->generateXML($filename); 
  74. } 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表