我想将excel导出到特定的文件夹中,用户可以将其保存在任何想要的地方。目前我已经成功地导出到excel,但我在本地测试它,并将它下载到我的本地服务器文件夹中。我希望有人能帮助我。谢谢。
$id=$_GET['id'];
$excel=new ExcelWriter("./excel/company".$id.".xls");
if($excel==false)
echo $excel->error;
$myArr=array("NO", "COMPANY", "ADDRESS1", "ADDRESS2", "ADDRESS3", "POSTCODE", "CITY", "STATE", "PHONE NO", "FAX NO", "EMAIL", "WEBSITE");
$excel->writeLine($myArr);
$qry=mysql_query(" SELECT organizations.*, states.state, cities.city FROM organizations, states, cities WHERE idOrg='$id' AND organizations.state_id=states.idState AND organizations.city_id=cities.idCity");
if($qry!=false)
{
$i=1;
while($res=mysql_fetch_array($qry))
{
$myArr=array($i,$res['companyName'], $res['add1'], $res['add2'], $res['add3'], $res['postcode'], $res['city'],$res['state'], $res['phoneNo'], $res['faxNo'], $res['email'], $res['website']);
$excel->writeLine($myArr);
$i++;
}
}
您的问题标题表明您假设使用PHP可以在客户端的PC上保存Excel文件。您可以将其保存到本地Web服务器(正如您已经发现的那样(。但要将其传输到客户端PC,您应该将其作为下载提供。
一旦完成了文件的编写(正如您已经在做的那样(,就向用户提供一个指向服务器上文件的链接。然后,他们将能够选择在电脑上下载的位置。
另一种可能性是写出excel文件数据作为HTTP响应,并将Content-Type
标头设置为类似application/vnd.ms-excel
(或任何适合您的文件类型的内容(和attachment
的Content-Disposition
(示例(。
我不熟悉ExcelWriter,所以我不知道它是否有某种dump
函数。也许在你写出文件后,你会做这样的事情:
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename=company'. $id .'.xls');
echo file_get_contents('./excel/company'. $id .'.xls');
解决方案在他们的文档中
http://pear.php.net/manual/en/package.fileformats.spreadsheet-excel-writer.intro.php
摘录自上述网站
// sending HTTP headers
$workbook->send('test.xls');
这意味着我们正在发送我们的电子表格到浏览器。但如果我们只是想拯救我们机器中的电子表格?好吧,你只需要省略那一行,然后为工作簿构造函数提供一个有效的文件路径。
例如,如果我们想保存在中创建的相同电子表格我们的第一个例子是一个名为"test.xls"的文件,我们会这样做:
然后,您可以将用户指向该文件的链接,这样他就可以将其保存到他喜欢的
"./excel/company".$id.".xls"
是相对路径吗?你确定这是你想保存它的地方吗?您可以使用$_SERVER['DOCUMENT_ROOT']来获取文档根目录,并使用它+路径,如下所示。
$_SERVER['DOCUMENT_ROOT'] . "/excel/company".$id.".xls
也不要忘记关闭文件。
$excel->close();