如何从我的PHP站点中将MySQL导出到Excel文件?

时间:2009-08-23 19:38:08

标签: php mysql excel

我正在显示一个数据表:

[Name] [Tel] [Email]    [checkbox]
Name 1  000  1@name.com
Name 2  000  2@name.com (checked)
Name 3  000  3@name.com (checked)

(按下XLS下载的按钮)

我在这里想要实现的是创建此按钮,允许用户下载XLS文件中的所有已检查条目?

4 个答案:

答案 0 :(得分:2)

如果CSV文件可以(可以在Excel中打开/编辑/保存),您可以使用以下内容:

foreach ($thing as $val) {
    if($val['checked']) {
        $csv_output .= "\"" . $val['name'] . "\",\"" . $val['tel'] . "\",\"" . $val['email'] . "\"\n";
    }
}
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: filename=" . $filename . "-" . date("Y-m-d") . ".csv");
print $csv_output;die;

其中$ csv_output是以CSV格式格式化的字符串。

如果要保存文件,可以使用PHP函数fputcsv

答案 1 :(得分:0)

当然,只有解决方案的一部分,但PHP模块Spreadsheet Excel Writer将允许您输出Excel电子表格。

答案 2 :(得分:0)

输出常规HTML页面对我来说效果最佳。 Excel解释包括CSS的格式。代码保持可读性。

<?php

$countries = Array(
    Array('name' => 'France', 'capital' => 'Paris'),
    Array('name' => 'Germany', 'capital' => 'Berlin'),
    Array('name' => 'Switzerland', 'capital' => 'Berne'),
);

// make the browser open it in Excel
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: filename=countries.xls");

?>
<html>
    <head>
        <style type="text/css">
td {
    border: 1px solid blue
}
        </style>
    </head>
    <body>
        <table>
            <tr>
                <th>Country</th>
                <th>Capital</th>
            </tr>
            <? foreach ($countries as $country): ?>
                <tr>
                    <td><?=$country['name'] ?></td>
                    <td><?=$country['capital'] ?></td>
                </tr>
            <? endforeach; ?>
        </table>
    </body>
</html>

答案 3 :(得分:0)

PHPExcel,一个用PHP编写Excel文件的好库。