如何使用PHP中的自动过滤器生成Excel文件?

Jai*_*man 14 php autofilter phpexcel

好的,这是我的困境.

我一直在为Medical Marcom制作 Wordpress插件,以自动更新他的美国推特医生名单.基本上,它提供了创建表单的功能,用户可以请求将其添加到列表中,可以在管理面板中确认请求,添加时可以在Excel文件中使用并填写初始数据,最后,某些字段会在一周内自动更新.

这是问题所在.

我的代码使用PHPExcel使用PHP生成Excel文件.但是,我需要在启动时将一个简单的自动过滤器应用于工作表(老实说,我不知道重要的是什么......任何人都可以轻松地在Excel中应用自动过滤器,但他希望从一开始就可以使用它).所以,我尝试应用我发现的代码:

$excel->getActiveSheet()->setAutoFilter('A1:J' . $row);
Run Code Online (Sandbox Code Playgroud)

$ excel是我的PHPExcel实例.$ row是从数据库输出的最后一行.单击url时会立即生成该文件,并将PHP的标题设置为将输出转换为Excel文件,如下所示:

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=" . $file);
Run Code Online (Sandbox Code Playgroud)

但是当我打开文件时,没有设置自动过滤器 ......我尝试在PHPExcel的网站上发布一个问题,但我没有得到任何回复,所以我决定在这里问.

有谁知道我可能做错了什么?目前他正在使用原始文件(尽管有所更新),直到此问题得到解决.

Max*_*lle 30

如果有人遇到这个问题.该功能已针对XLSX和XLS实施.

您只需指定标题行的范围即可:

$excel->getActiveSheet()->setAutoFilter('A1:J1');
Run Code Online (Sandbox Code Playgroud)


Ng *_*ong 5

如果您希望自动过滤整个工作表,PHPSpreadsheet 有一个更好的实现:

    $sheet->setAutoFilter(
        $sheet->calculateWorksheetDimension()
    );
Run Code Online (Sandbox Code Playgroud)


JMa*_*Max 1

我从这个链接了解到它尚未实施。

看起来它仍然是一个工作项目(抱歉,优先级较低)。

[编辑] 似乎它可以与 Excel 2007 一起使用(请参阅此工作项)。您的客户使用哪个版本的 Excel?