最新的项目,因为涉及到资金,需要导出excel。先找到项目后台原本的导出功能,挺简陋的不满足项目要求,需要优化。它没有引入任何操作excel的类库,直接获取数据拼接,中间用iconv()函数将字符串从utf8编码转为gbk,然后echo打印出来,就变成导出excel。
然后我发现一句代码:
header("Content-Disposition: attachment; filename=refund_list.csv");
这里的refund_list.csv就是每次导出的excel文件名。参考到以前用PHP的下载头代码:
header("Content-type: text/plain");
header("Accept-Ranges: bytes");
header("Content-Disposition: attachment; filename=".$filename);
header("Cache-Control: must-revalidate, post-check=0, pre-check=0" );
header("Pragma: no-cache" );
header("Expires: 0" );
所以我猜代码中的这句header()代码也是类型下载头的代码,将PHP打印的数据转化为可下载的文件形式,然后通过“refund_list.csv”这里的后缀转化为excel。
为了证明我的猜测,我先百度了“Content-Disposition”,得到的结果:Content-Disposition为属性名