在excel文件中导出记录

SB2*_*B24 1 php mysql

我创建了一个Web应用程序,我想添加一个像用户可以导出所选记录的功能...

Check Box   Name    Email

            Sumit   sumit@gmail.com
            Karan   karan@gmail.com
Run Code Online (Sandbox Code Playgroud)

我想将此记录导出到excel文件中,但只应导出所选记录.

提前致谢

eva*_*van 6

无需下载外部库 - 您需要的所有内容都已内置到PHP中.

脚步:

  1. 在php中查询以获取要输出的行
    您可以使用SELECT * FROM table WHERE id IN (1,2,...)
  2. 使用mysql_fetch_array()或一次mysql_fetch_assoc()获取一行
  3. 用于fputcsv()将它们输出到以csv结尾的文件 - 这将正确地转义您的数据

http://www.php.net/manual/en/function.mysql-fetch-array.php
http://php.net/manual/en/function.fputcsv.php

Excel将能够读取该文件.

覆盖默认值fputcsv以使用制表符分隔符,Excel将更容易读取文件.如果使用逗号(默认值),则可能需要选择逗号作为Excel导入的分隔符.

这是一个工作示例,假设您已经设置了行:

$rows; // predefined
$filename = 'webdata_' . date('Ymd') . '.csv';

header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/octet-stream"); 
// that indicates it is binary so the OS won't mess with the filename
// should work for all attachments, not just excel

$out = fopen("php://output", 'w');  // write directly to php output, not to a file
foreach($rows as $row)
{
  fputcsv($out, $row);
}
fclose($out);
Run Code Online (Sandbox Code Playgroud)