AngularJs导出数据到Excel的示例代码

发布时间 - 2026-01-11 02:45:19    点击率:

公司一个新的需求导出Exce表格,研究了一下,最后终于实现,分享给大家。

1 使用FileSaver

第一次采用FileSaver.js 由于刚开始导致导出一片空白,还只能抓取网页里面的表格地址:https://github.com/eligrey/FileSaver.js

HTML

<div id="exportable">
  <table width="100%">
    <thead>
      <tr>
        <th>Name</th>
        <th>Email</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>小明</td>
        <td>dsds@163.com</td>
      </tr>
    </tbody>
  </table>
</div>

js部分

var blob = new Blob([document.getElementById('exportable').innerHTML], {
    type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"
  });
  saveAs(blob, "日记账.xls");
};

2 使用 alasql

使用alasql的好处就是可以在数据层面去组织结构

官网地址:http://alasql.org/

js部分

\\ angular 需要导入xlsx.core.min.js alasql.min.js
\\ 文件结构 
 var arr = [
      {
        '收入':1,
        '支出':2,
        '结存':3
      },
      {
        '收入':4,
        '支出':5,
        '结存':6
      }
    ]

\\ 生成 excel 文件
alasql('SELECT * INTO XLSX("日记账.xlsx",{headers:true}) FROM ?',[arr]);

我优化的版本

// 导出excel

  $scope.exportToExcel=function(){
    var data = angular.copy($scope.pageData.list)
    var arr = [];
    var type = null;
    var amountIN = 0;
    var amountOUT = 0;
    angular.forEach(data,function (item) {
      // 兑付情况
      if(item.isHappened){
        type = '未兑付'
      }else{
        type = '已兑付'
      }
      // 收入
      if(item.itemModel=='INCOME'){
        amountIN = item.amount
      }
      // 支出
      if(item.itemModel=='OUTCOME'){
        amountOUT = item.amount
      }
      arr.push({
        '兑付情况':type,
        '合同':item.keyId,
        '收付日期':$filter('date')(item.updateTime,'yyyy-MM-dd'),
        '科目':item.itemType.value,
        '收入':$filter('number')(amountIN,2),
        '支出':$filter('number')(amountOUT,2),
        '结存':$filter('number')(item.balance,2)
      })
    })
    if(arr.length < 1){
      ToasterTool.error('暂无数据,导出失败!');
    }else{
      // alasql('SELECT * INTO XLSX("日记账.xlsx",{headers:true}) FROM ?',[arr]);
      
      alasql.promise('SELECT * INTO XLSX("日记账-'+ DateTool.format(new Date(),'yyyy-MM-dd HH:mm:ss') + "-"+ $scope.loginUser.userName +'.xlsx",{headers:true}) FROM ?',[arr])
        .then(function (data) {
          if(data == 1){
            $timeout(function(){
              ToasterTool.success('数据导出成功!')
            })

          }
        })
    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# AngularJs导出Excel  # Angular导出数据到Excel  # JS实现将数据导出到Excel的方法详解  # js实现数据导出为EXCEL(支持大量数据导出)  # Vue导出json数据到Excel电子表格的示例  # JSP实现从数据库导出数据到Excel下载的方法  # js导出table数据到excel即导出为EXCEL文档的方法  # 通过Javascript将数据导出到外部Excel文档的函数代码  # javascript 导出数据到Excel(处理table中的元素)  # javascript 实现纯前端将数据导出excel两种方式  # 暂无  # 给大家  # 刚开始  # 小明  # 官网  # 组织结构  # 大家多多  # 收付  # document  # Blob  # type  # innerHTML  # getElementById  # dsds  # officedocument 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  如何在云服务器上快速搭建个人网站?  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  iOS发送验证码倒计时应用  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  如何获取上海专业网站定制建站电话?  详解vue.js组件化开发实践  高防服务器:AI智能防御DDoS攻击与数据安全保障  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  手机软键盘弹出时影响布局的解决方法  java获取注册ip实例  如何注册花生壳免费域名并搭建个人网站?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  php 三元运算符实例详细介绍  Laravel如何使用.env文件管理环境变量?(最佳实践)  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何选择可靠的免备案建站服务器?  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  如何快速登录WAP自助建站平台?  高防服务器租用如何选择配置与防御等级?  百度浏览器如何管理插件 百度浏览器插件管理方法  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  如何在香港服务器上快速搭建免备案网站?  WEB开发之注册页面验证码倒计时代码的实现  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  HTML 中如何正确使用模板变量为元素的 name 属性赋值  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  如何用低价快速搭建高质量网站?  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  如何在阿里云部署织梦网站?  JS中对数组元素进行增删改移的方法总结  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  北京网站制作的公司有哪些,北京白云观官方网站?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  如何确认建站备案号应放置的具体位置?  高防服务器如何保障网站安全无虞?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?