浏览器正常导出文件phpecxel

举报
lxw1844912514 发表于 2022/03/27 23:55:04 2022/03/27
【摘要】 header("Content-type: text/html; charset=utf-8");require "./plugin/phpexcel-1.8/Classes/PHPExcel/IOFactory.php";require_once './plugin/phpexcel-1.8/Classes/PHPExcel.php...

  
  1. header("Content-type: text/html; charset=utf-8");
  2. require "./plugin/phpexcel-1.8/Classes/PHPExcel/IOFactory.php";
  3. require_once './plugin/phpexcel-1.8/Classes/PHPExcel.php';
  4. require_once './plugin/phpexcel-1.8/Classes/PHPExcel/Writer/Excel2007.php';
  5. /**
  6. * 创建(导出)Excel数据表格
  7. * @param array $list 要导出的数组格式的数据
  8. * @param string $filename 导出的Excel表格数据表的文件名
  9. * @param array $indexKey $list数组中与Excel表格表头$header中每个项目对应的字段的名字(key值)
  10. * @param array $startRow 第一条数据在Excel表格中起始行
  11. * @param [bool] $excel2007 是否生成Excel2007(.xlsx)以上兼容的数据表
  12. * 比如: $indexKey与$list数组对应关系如下:
  13. * $indexKey = array('id','username','sex','age');
  14. * $list = array(array('id'=>1,'username'=>'YQJ','sex'=>'男','age'=>24));
  15. */
  16. /*function exportExcel($list,$filename,$indexKey,$startRow=1,$excel2007=false){
  17. if(empty($filename)) $filename = time();
  18. if( !is_array($indexKey)) return false;
  19. $header_arr = array('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');
  20. //初始化PHPExcel()
  21. $objPHPExcel = new PHPExcel();
  22. //设置保存版本格式
  23. if($excel2007){
  24. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  25. $filename = $filename.'.xlsx';
  26. }else{
  27. $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
  28. $filename = $filename.'.xls';
  29. }
  30. //接下来就是写数据到表格里面去
  31. $objActSheet = $objPHPExcel->getActiveSheet();
  32. $objActSheet->setCellValue('A2', "活动名称:江南极客");
  33. $objActSheet->setCellValue('C2', "导出时间:".date('Y-m-d H:i:s'));
  34. //$startRow = 1;
  35. foreach ($list as $row) {
  36. foreach ($indexKey as $key => $value){
  37. //这里是设置单元格的内容
  38. $objActSheet->setCellValue($header_arr[$key].$startRow,$row[$value]);
  39. }
  40. $startRow++;
  41. }
  42. // 下载这个表格,在浏览器输出
  43. // header("Pragma: public");
  44. // header("Expires: 0");
  45. header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
  46. header("Content-Type:application/force-download");
  47. header("Content-Type:application/vnd.ms-execl");
  48. header("Content-Type:application/octet-stream");
  49. header("Content-Type:application/download");;
  50. header('Content-Disposition:attachment;filename='.$filename.'');
  51. header("Content-Transfer-Encoding:binary");
  52. $res=$objWriter->save('php://output');
  53. return $res;
  54. }*/
  55. function exportExcel2($list,$filename,$indexKey=array()){
  56. $header_arr = array('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');
  57. //$objPHPExcel = new PHPExcel(); //初始化PHPExcel(),不使用模板
  58. $template = 'D:/Download/test.xlsx'; //使用模板
  59. // $template = dirname(__FILE__).'/template.xls'; //使用模板
  60. $objPHPExcel = PHPExcel_IOFactory::load($template); //加载excel文件,设置模板
  61. $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); //设置保存版本格式
  62. //接下来就是写数据到表格里面去
  63. $objActSheet = $objPHPExcel->getActiveSheet();
  64. $objActSheet->setCellValue('A2', "活动名称:江南极客");
  65. $objActSheet->setCellValue('C2', "导出时间:".date('Y-m-d H:i:s'));
  66. $i = 4;
  67. foreach ($list as $row) {
  68. foreach ($indexKey as $key => $value){
  69. //这里是设置单元格的内容
  70. $objActSheet->setCellValue($header_arr[$key].$i,$row[$value]);
  71. }
  72. $i++;
  73. }
  74. // 1.保存至本地Excel表格
  75. //$objWriter->save($filename.'.xls');
  76. // 2.接下来当然是下载这个表格了,在浏览器输出就好了
  77. header("Pragma: public");
  78. header("Expires: 0");
  79. header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
  80. header("Content-Type:application/force-download");
  81. header("Content-Type:application/vnd.ms-execl");
  82. header("Content-Type:application/octet-stream");
  83. header("Content-Type:application/download");;
  84. header('Content-Disposition:attachment;filename="'.$filename.'.xls"');
  85. header("Content-Transfer-Encoding:binary");
  86. $objWriter->save('php://output');
  87. }
  88. $indexKey = array('id','username','sex','age');
  89. $data = array(array('id'=>1,'username'=>'YQJ','sex'=>'男','age'=>24));
  90. exportExcel2($data,$filename='test',$indexKey);
  91. // exportExcel($data,$filename='test',$indexKey,$startRow=1,$excel2007=true);

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/120788409

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。