phpexcel 设置文件名 (问:如何使用PHPExcel设置文件名?)
笔者在使用 PHPExcel 生成 Excel 文件的过程中,遇到了要为生成的文件设置文件名的问题。在查阅相关文档后,笔者总结出了如下的解决方案:
一、直接使用 PHP 内置函数 header() 函数
PHP 内置函数 header() 函数可以用来设置 HTTP 响应头。我们可以在生成 Excel 文件的 PHP 脚本中添加如下代码:
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="filename.xls"');
其中,第一条 header() 函数设置了生成的文件类型为 Excel,第二条 header() 函数设置了生成的文件名为 “filename.xls”。
这种方式的优点是简单方便,可以直接生成并下载 Excel 文件。缺点是无法设置 Excel 文件的一些属性,如作者、创建时间等。
二、使用 PHPExcel 库的 setActiveSheetIndex() 方法
PHPExcel 是一个强大的 PHP 操作 Excel 文件的库,它提供了多种方法来设置 Excel 文件的属性,包括文件名。我们可以首先创建一个 Excel 文件,然后使用 setActiveSheetIndex() 方法将当前活动工作表命名为我们需要的文件名,最后将 Excel 文件输出即可。
下面是示例代码:
“`php
// 引入 PHPExcel 类库
require_once ‘PHPExcel.php’;
// 创建 Excel 对象
$objPHPExcel = new PHPExcel();
// 设置当前活动工作表,并命名为文件名
$objPHPExcel->setActiveSheetIndex(0)->setTitle(‘filename’);
// 输出 Excel 文件
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5’);
header(‘Content-Type: application/vnd.ms-excel’);
header(‘Content-Disposition: attachment;filename=”filename.xls”‘);
$objWriter->save(‘php://output’);
“`
这种方式的优点是可以设置 Excel 文件的多种属性,缺点是相对于直接使用 header() 函数略显复杂。
总结
我们可以根据具体需求来选择合适的方法来设置 Excel 文件的文件名。如需要简单地设置文件名,可以使用 PHP 内置函数 header() 函数;如需要设置更多的属性,可以使用 PHPExcel 提供的方法来完成。