通过ajax下载excel表

时间:2013-07-20 17:44:34

标签: php jquery ajax

我试图使用帖子请求下载excel文件..我想知道这是否只能使用某种隐藏的iframe或者可能使用flash,因为我已经阅读了一些帖子但是我不知道该怎么做这个。这是我到目前为止的代码..

employeeExcel.php

<?php
require_once ("../models/employeesModel.php");
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=reporteEmpleados.xls");


$employees = new Employee();
$emp = $employees->search_empleados();
?>

<html>

<body>

                <table id="myTable" class="tablesorter">
                    <thead>
                        <tr>
                            <th>Nombre</th>
                            <th>Apellido</th>
                            <th>Tipo Doc.</th>
                            <th>Email</th>
                        </tr>
                    </thead>

                    <?php
                    foreach ($emp as $datos) {

                        $id = $datos["id_employee"];
                        $image = $datos["image"];
                        $name = $datos["employee_name"];
                        $surname = $datos["employee_surname"];
                        $dni = $datos["dni"];
                        $email = $datos["email"];
                        ?>

                        <tbody> 
                            <tr id="<?php echo $id; ?>">
                                <td> <?php echo $name; ?></td>
                                <td> <?php echo $surname; ?></td>
                                <td> <?php echo $dni; ?></td>
                                <td> <?php echo $email; ?></td>
                            </tr>
                        </tbody>

                        <?php
                    }
                    ?>

                </table>
                <button onclick="employeeExcel();
                        return false" name="export">Export</button></a>

这是我做ajax帖子的地方

          function employeeExcel() {
          var uri = "employees.php";
          $.ajax({
          url: uri,
          type: 'POST',
          data: datos,
          success: function() {
          window.location = uri;

          }

          });
       }

1 个答案:

答案 0 :(得分:0)

该文件不为空,但格式错误。

表(<tr><td> ...)的HTML标记不会被识别为Excel文件语法。您需要创建一个真实的Excel文件以使用输出文件的扩展名.xls

例如,尝试使用.txt而不是.xls 重命名下载文件的文件扩展名并将其打开。您将看到HTML表输出,这不是Excel语法。

查看这个优秀的PHP库,生成Excel文件http://phpexcel.codeplex.com/