14

好的,这是我的困境。

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

这就是问题所在。

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

$excel->getActiveSheet()->setAutoFilter('A1:J' . $row);

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

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

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

有谁知道我可能做错了什么?现在,他将使用原始文件(虽然更新了一点),直到这个问题得到解决。

4

3 回答 3

32

万一有人遇到这个问题。该功能已针对 XLSX 和 XLS 实施。

您只需要指定标题行的范围即可使其工作:

$excel->getActiveSheet()->setAutoFilter('A1:J1');
于 2015-09-20T23:42:08.610 回答
5

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

    $sheet->setAutoFilter(
        $sheet->calculateWorksheetDimension()
    );
于 2019-01-03T10:07:15.607 回答
1

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

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

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

于 2011-09-08T07:45:01.120 回答