1

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

我试图用谷歌搜索它,但我似乎找不到任何东西。

谢谢你。

4

2 回答 2

0

您需要编写文件。要写入 USB 驱动器,您只需指定正确的文件路径。如果您在 *nix 上,它就像/media/USB/在 linux 或/Volumes/USB/Mac 上一样。对于 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这里

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

于 2012-09-06T17:25:59.087 回答
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() 进行循环。

于 2012-09-06T17:31:44.667 回答