使用 AngularJS 导出xls文件

在Web应用程序中,将数据导出为Excel文件是一个常见的需求。本文将介绍如何使用AngularJS实现导出XLS文件的功能。

准备工作

首先,需要在项目中引入以下两个js库:

可以通过npm下载安装它们:

--- ------- ------------ ---------- ------

此外,还需要在index.html中添加对这些库的引用:

------- -------------------------------------------------------
------- -------------------------------------------------------------
------- --------------------------------------------------------

实现导出功能

假设我们有一个包含一些数据的表格,每一行包含姓名、年龄和邮箱。要将其导出为XLS文件,需要执行以下步骤:

  1. 在页面中添加一个按钮,并在单击时触发导出函数:

    ------- ------------------------------------
  2. 在控制器中定义导出函数。该函数会获取表格中的数据,创建一个Workbook对象,并将数据添加到该对象中。最后,它会将Workbook转换为Blob对象,并将其保存到本地文件中。

    ------------------ - ---------- -
      --- ---- - --- -- ----
      --- ------- - ------ ----- ------ -- --
    
      -- --------
      ---------------------------------------------------- ----- --------------------- -
        --- --- - ---
        ---------------------------------- -
          -------------------------
        ---
        ---------------
      ---
    
      -- -----------------
      --- -- - ----------------------
      --- -- - ------------------------------------------------
      -------------------------------- --- ----------
    
      -- --------------------------
      --- ---- - --- ------------------------- - --------- ------- ----- -------- ----- -
        ----- --------------------------
      ---
      ------------ -------------
    --
    
    -------- ------- -
      --- --- - --- ----------------------
      --- ---- - --- ----------------
      --- ---- - - -- - -- --------- ---- ------- - --------------- - -----
      ------ ----
    -

    这里我们通过jQuery选择器获取了表格中所有的行和列,然后将它们传递给 utils.aoa_to_sheet 函数,以方便地将它们添加到Workbook对象中。

  3. 最后,我们需要在控制器中注入 $scopeFileSaver

    ----------------------- ---
      --------------------- ---------- ------------ ---------------- ---------- -
        -- -----
      ----

示例代码

下面是一个完整的示例代码:

--------- -----
----- ---------------

------
  ----- ----------------
  ------------- -- --- ----- -----------------
  ------- -------------------------------------------------------
  ------- ---------------------------------------------------
  ------- -------------------------------------------------------------
  ------- --------------------------------------------------------
-------

----- -----------------------
  ------ --------------
    -------
      ----
        -----------
        -----------
        -----------
      -----
    --------
    -------
      ----
        -----------
        -----------
        -

- ----------------------------------------------------------- --------
---------------------------------------------------------------------------------------