php excel ajax 导出文件

Love The Way You Lie 2022-03-16 03:08 590阅读 0赞
  1. $list = [];//要导出的数据
  2. $path = dirname(__FILE__); //找到当前脚本所在路径
  3. vendor("PHPExcel.PHPExcel.PHPExcel");
  4. vendor("PHPExcel.PHPExcel.Writer.IWriter");
  5. vendor("PHPExcel.PHPExcel.Writer.Abstract");
  6. vendor("PHPExcel.PHPExcel.Writer.Excel5");
  7. vendor("PHPExcel.PHPExcel.Writer.Excel2007");
  8. vendor("PHPExcel.PHPExcel.IOFactory");
  9. $objPHPExcel = new \PHPExcel();
  10. $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
  11. $objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);
  12. // 设置表头信息
  13. $objPHPExcel->setActiveSheetIndex(0)
  14. ->setCellValue('A1', '订单编号')
  15. ->setCellValue('B1', '原始单号')
  16. ->setCellValue('C1', '产品编号')
  17. ->setCellValue('D1', '产品名称')
  18. ->setCellValue('E1', '产品规格')
  19. ->setCellValue('F1', '产品批号')
  20. ->setCellValue('G1', '产品数量')
  21. ->setCellValue('H1', '数量单位')
  22. ->setCellValue('I1', '单价')
  23. ->setCellValue('J1', '生产日期')
  24. ->setCellValue('K1', '有限期至')
  25. ->setCellValue('L1', '收货单位')
  26. ->setCellValue('M1', '联系人')
  27. ->setCellValue('N1', '联系方式')
  28. ->setCellValue('O1', '收货地址');
  29. /*--------------开始从数据库提取信息插入Excel表中------------------*/
  30. $i=2;
  31. foreach ($list as $key=>$val){
  32. $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $val['bl_order_no']);
  33. $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $val['orig_code']);
  34. $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $val['goods_code']);
  35. $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $val['goods_name']);
  36. $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $val['goods_spec']);
  37. $objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $val['goods_batch']);
  38. $objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $val['goods_num']);
  39. $objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $val['goods_unit']);
  40. $objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $val['price']);
  41. $objPHPExcel->getActiveSheet()->setCellValue('J' . $i, $val['make_date']);
  42. $objPHPExcel->getActiveSheet()->setCellValue('K' . $i, $val['validity_date']);
  43. $objPHPExcel->getActiveSheet()->setCellValue('L' . $i, $val['to_corp']);
  44. $objPHPExcel->getActiveSheet()->setCellValue('M' . $i, $val['to_user_name']);
  45. $objPHPExcel->getActiveSheet()->setCellValue('N' . $i, $val['to_mobile']);
  46. $objPHPExcel->getActiveSheet()->setCellValue('O' . $i, $val['to_addr']);
  47. $i++;
  48. }
  49. /*--------------下面是设置其他信息------------------*/
  50. $objPHPExcel->getActiveSheet()->setTitle('入库单产品详情'); //设置sheet的名称
  51. $objPHPExcel->setActiveSheetIndex(0); //设置sheet的起始位置
  52. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //通过PHPExcel_IOFactory的写函数将上面数据写出来
  53. $PHPWriter = \PHPExcel_IOFactory::createWriter( $objPHPExcel,"Excel2007");
  54. $filename = "excel";
  55. header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');
  56. header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  57. $filePath = 'excel/'.$filename.'.xlsx';
  58. ob_start();
  59. //$objWriter->save($filePath);
  60. $PHPWriter->save('php://output'); //表示在$path路径下面生成demo.xlsx文件
  61. $xlsdata = ob_get_contents();
  62. ob_end_clean();
  63. return ['filename' => $filename.'.xlsx', 'file' => "data:application/vnd.ms-excel;base64," . base64_encode($xlsdata)];
  64. $("#export").click(function () {
  65. var search = $("[name=search_from]").serializeArray();
  66. $.ajax({
  67. type:'post',
  68. url:'{:url("export")}',
  69. data: search,
  70. success:function (res) {
  71. var $a = $("<a>");
  72. $a.attr("href", res.file);
  73. $a.attr("download", res.filename);
  74. $("body").append($a);
  75. $a[0].click();
  76. $a.remove();
  77. }
  78. })
  79. });

thinkphp5 excel导出

发表评论

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

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

相关阅读

    相关 java使用ajax导出Excel

    Ajax是不能导出excel的,只能用其他的方式来实现,本方法不是用Ajax来实现的,而是用form表单来实现的 下面前端框架使用的是ligerui 1、先写一个div

    相关 ajax不能导出excel

    今天犯了一个很低级,但是不知道原因却不能解决的问题,困扰了一下午,最后终于解决了。 问题是:java导出excel的问题,刚开始导出是使用ajax返回文件路径的形式,导出没有