1

有一个报告,服务器会在我的 Intranet 中自动创建该报告。

我可以通过这样的网址访问并下载它:

http://www1.intranet.com/reportingtool.asp?settings=var&export = ok

我想将它与 PHPExcel 一起使用。

$objPHPExcel = PHPExcel_IOFactory::load("file.xls");

当我用url交换 file.xls时,它不起作用。

我可以使用哪种替代方法通过手动下载 excel 文件并在代码中写入文件名来避免该步骤?

4

1 回答 1

1

你不能...

为了解析 xls 文件,PHPExcel 需要能够在从 OLE 流中读取数据时在文件中前后移动文件指针;这不是通过 url 检索的文件的选项,只有在服务器文件系统上物理可用的文件。

解决方法(下载到临时文件):

$url = 'http://www1.intranet.com/reportingtool.asp?settings=var&export=ok';
$tmpfname = tempnam(sys_get_temp_dir());
file_put_contents(
    $tmpfname,
    file_get_contents($url)
);
$objPHPExcel = PHPExcel_IOFactory::load($tmpfname);

尽管之后您可能需要手动删除 $tmpfname

于 2013-10-08T12:59:48.643 回答