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弄了三个小时的代码,百度了所有的兼容,竟然是软件的问题)
本文介绍如何使用Ajax与PHPExcel实现前端和后端的数据传输,并解决了下载Excel文件时遇到的问题。
8349

被折叠的 条评论
为什么被折叠?



