1.ajax和phpexcel怎么进行传输? 2.下载后,显示文件可能被破坏或者后缀名不.... 打不开文件?

本文介绍如何使用Ajax与PHPExcel实现前端和后端的数据传输,并解决了下载Excel文件时遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.ajax和phpexcel怎么进行传输?

 

ajax前后端传输的时候,前端给值,后端通过传来的id进行下载。如果下载不了,你可以看一下你返回给前端的值,如果是乱码,那就是有值,但是ajax不能解析而已。

这时候会发现你是用

$PHPWriter->save("php://output"); 

输出的这个文件。

因为你是前后端通过ajax,所以当然不能用output来输出了。这个时候我们要把该excel文件保存到一个地方,然后再返回给前端那个地方的地址,让他去下载。

比如:

function saveExcelToLocalFile($objWriter,$filename){
            // make sure you have permission to write to directory
//            $down_dir = ROOT_PATH . 'public/static' . DS . 'downexcel/';//存放在当前目录的upload文件夹下
            $down_dir = ROOT_PATH . 'public/static' . DS . 'downexcel/';//存放在当前目录的upload文件夹下
            $filePath = $down_dir.$filename.'.xlsx';
            $objWriter->save($filePath);
            $filePath='http://你的网址/static/downexcel/'.$filename.'.xlsx';
            return $filePath;
        }

//返回已经存好的文件目录地址提供下载
        $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
        $response = array(
            'success' => true,
            'url' => saveExcelToLocalFile($objWriter,$filename)
        );
        echo json_encode($response);
        exit();

2.下载后,显示文件可能被破坏或者后缀名不.... 打不开文件?

 

在你写的头文件前边添加:

ob_end_clean();
ob_start();

如果还是打不开,那你试试在其他电脑或者你手机,能不能把那个文件夹打开。如果可以,请把你电脑的excel工具卸载,安装一个新的!(这个是最气的,我tm弄了三个小时的代码,百度了所有的兼容,竟然是软件的问题)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值