PHP将Excel导出到特定路径


PHP Export Excel to specific Path?

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

我试着用谷歌搜索一下,但似乎什么也找不到。

谢谢。

您需要编写该文件。要写入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的手册在这里。

如果需要,您可以通过应用程序支持的任何方式向用户请求文件路径。

将其保存为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的表列并首先输出这些列,然后在循环结束时使用while调用$row=$statement->fetch()进行循环。