PHP将Excel导出到特定路径?

时间:2012-09-06 17:19:18

标签: php mysql csv usb export

是否可以将PHP MySQL Excel表格导出到指定的路径,例如USB闪存盘。 这是因为我使用php作为销售点,所有我现在想要的是一旦你点击一个按钮 - 它将从MySQL数据库中收集记录并将其作为excel或csv文件导出到USB闪存盘。

我试图把它谷歌出来,但我似乎找不到任何东西。

谢谢。

2 个答案:

答案 0 :(得分:0)

您需要编写该文件。要写入USB驱动器,您只需指定正确的文件路径。如果您使用的是* nix,它就像Linux上的/media/USB/或Mac上的/Volumes/USB/。对于Windows,它就像F:/

如此粗略的例子就像

$a = array('1','2','3'); //This is imaginable row from MySQL
$f = fopen('F:/mycsv.csv', 'w');
fputcsv($f, $a);
fclose($f);

fputcsv的手册为here

如果需要,您可以以应用程序支持的任何方式询问用户文件路径。

答案 1 :(得分:0)

将其保存为excel并不是一个简单的过程,但编写csv相对简单。

$temp = tempnam(sys_get_temp_dir(),'tmp');
$handle = fopen($temp,'w');
$query = $pdo->prepare("select * from table");
$query->execute();
$row=$statement->fetch();
$keys=array_keys($row);
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename=export_'.date('dmY').'.csv');
fputcsv($handle,$keys);
while($row){
fputcsv($handle,$row);
$row=$statement->fetch();}
echo file_get_contents($temp);
fclose($handle);

这会在您的临时文件夹中创建一个临时文件,您将csv写入该文件,然后为其提供csv标头并将其回显,从而为用户提供保存文件框。 我在循环之前调用$ row一次以获取带有array_keys的表列并先输出这些列,然后在循环结束时调用$ row = $ statement-> fetch()进行循环。