是否可以将PHP MySQL Excel表格导出到指定的路径,例如USB闪存盘。 这是因为我使用php作为销售点,所有我现在想要的是一旦你点击一个按钮 - 它将从MySQL数据库中收集记录并将其作为excel或csv文件导出到USB闪存盘。
我试图把它谷歌出来,但我似乎找不到任何东西。
谢谢。
答案 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()进行循环。