2011-09-08 26 views
13

好的,这是我的困境。如何在PHP中使用Autofilters生成Excel文件?

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

这是问题所在。

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

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

$ excel是我的PHPExcel实例。 $ row是从数据库输出的最后一行。点击网址时,系统文件被立即生成和PHP的头被设置为输出为Excel文件翻译,像这样:

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

但是当我打开文件时,没有自动筛选设置...我尝试posting a question over at PHPExcel's website,但我没有得到任何答复,所以我决定在这里问。

有谁知道我可能做错了什么?现在,他正在使用原始文件(稍微更新一下),直到解决此问题。

回答

1

我从this link了解到它尚未实现。

它似乎仍然是一个work item(低优先级抱歉)。

[编辑]似乎可以使用Excel 2007(请参阅此work item)。客户使用哪种版本的Excel?

+0

我要问他。我已经看到它已经被实现,并且它在文档中显示它正确,但它对我没有用。另一个发布工作项目的人显然已经开始工作,它只是没有高级功能。不过,我开始想,我可能一直在试图输出错误类型的Excel文件。我会去问问我的客户是否使用Excel 2007。目前的文件是2003年,但不幸的是...... – JaidynReiman

23

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

你只需要指定你的标题行的范围内,它的工作:

$excel->getActiveSheet()->setAutoFilter('A1:J1'); 
+0

只指定标题行。谢谢! – Oak