当前位置: 首页 > news >正文

HAPkendoUI的Excle导出

在Excle导出上,HAP使用的kendoUI进行导出,简单步骤如下
1.添加导出按钮
 <span class="btn btn-primary pull-left" style="float:left;margin-right:5px;margin-left:5px;" data-bind="click:exportFunc"><@spring.message "hap.exportexcel"/></span>

 

 
 
2.在最上方写回调函数exportFunc
<script type="text/javascript">
    var viewModel = Hap.createGridViewModel("#grid", {
        model: {},
        newResource: function (e) {
            var win = $('#newWin').kendoWindow({
                iframe: true,
                draggable: false,
                content: '${base.contextPath}/demo/demo_bank_branch.html',
            }).data('kendoWindow');
            win.title('<@spring.message "hap.new"/>');
            win.maximize().open();
        },
        //导出EXCEL的回调函数
        exportFunc : function (e) {
            //获取grid数据
            var originData = dataSource.data();
            excelData(originData);
        },
    });
</script>

 

 
3.在最下方的script标签中写excelData方法
 
  
 
 
//导出
    function excelData(originData) {
        /**
         * 1.修改源数据
         * 修改源数据中需要转换的值,如快码字段("Y"->"是","N"->"否"),时间格式等
         */
        if (originData.length > 0){ //如果有选中数据则导出数据
            for (var i in originData){
                //时间转换
                originData[i].expirationDate = kendo.toString(kendo.parseDate(originData[i].expirationDate), "yyyy-MM-dd");
                //银行类型转换
                var v = originData[i].bankType;
                $.each(bankTypeData, function (i, n) {
                    if ((n.value || '').toLowerCase() == (v || '').toLowerCase()) {
                        v = n.meaning;
                        originData[i].bankType  =v;
                    }
                })
            }
        }else {
            return;
        }

        /**
         * 2.设置excel格式与内容
         */

        /**
         * 2.1设置excel表格标题
         */
        var excelTitles = ['<@spring.message "简称"/>','<@spring.message "名称"/>','<@spring.message "类型"/>','<@spring.message "描述"/>','<@spring.message "截止时间"/>','<@spring.message "备注"/>'];
        //标题数组
        var excelHeader = [];
        for(var i in excelTitles){
            excelHeader.push({
                value: excelTitles[i],                    //标题文字
                background: '#92cddc',                 //标题背景颜色
                color: '#000',                         //标题字体颜色
                textAlign: 'center',                     //文字水平对齐方式
                verticalAlign: 'center',                  //文字竖直对齐方式
                borderLeft: {size: 1 ,color:"#ddd"},       //左边框大小及颜色
                borderRight: {size: 1 ,color:"#ddd"},      //右边框大小及颜色
                borderBottom: { size: 1 ,color:"#ddd"},   //下边框大小及颜色
                borderTop: { size: 1 ,color:"#ddd"},      //上边框大小及颜色
            })
        }

        /**
         * 2.2设置最终导出数据
         */
            //最终导出数据
        var excelData = [];
        //2.2.1将标题添加至导出数据
        excelData.push({
            cells: excelHeader
        });
        //2.2.2将源数据添加至导出数据
        for(var i=0;i < originData.length;i++){
            excelData.push({
                cells: [
                    { value: originData[i].bankCode, borderBottom: { size: 1 ,color:"#ddd"},borderRight: { size: 1 ,color:"#ddd"},verticalAlign: 'center', textAlign: 'center',background: '#ff9' },
                    { value: originData[i].bankName, verticalAlign: 'center', textAlign: 'center'},
                    { value: originData[i].bankType, verticalAlign: 'center', textAlign: 'center'},
                    { value: originData[i].description, verticalAlign: 'center', textAlign: 'center'},
                    { value: originData[i].expirationDate, verticalAlign: 'center', textAlign: 'center'},
                    { value: originData[i].comments, verticalAlign: 'center', textAlign: 'center'}
                ],
            });
        }
        //2.2.3设置列宽度与样式
        var columns = [];
        for(var i = 0;i < excelTitles.length;i++){
            columns.push({ width: 150 });
        }

        /**
         * 3.配置导出excel sheets,格式与文件名
         */
        var workbook = new kendo.ooxml.Workbook({
            date: new Date(),
            sheets: [ // sheet数组,如需导出多个sheet在此完成
                {
                    name: '银行数据',       //sheet 名称
                    frozenRows: 1,         //冻结第一行
                    frozenColumns: 1,      //冻结第一列
                    columns: columns,      //
                    rows: excelData        //数据
                }
            ]
        });

        //设置文件名
        kendo.saveAs({
            dataURI: workbook.toDataURL(), //数据源
            fileName: '银行导出测试' //文件名
        });
    }

 

4.一些其他补充(节选自kendo导出文档)
  4.1 导出复选框所勾选的数据
<span class="btn btn-primary" οnclick="excelSelectedData()">
    <i class="fa fa-file-excel-o" style="margin-right:3px;"></i>导出复选框选中的数据
</span>
<script>
    function excelSelectedData() {
        var originData = grid.selectedDataItems();
        excelData(originData);
    }
</script>

 

 
 
 
4.2 导出当前页的数据 ( 查询条件查询后 )
<span class="btn btn-primary" οnclick="excelPageData()">
    <i class="fa fa-file-excel-o" style="margin-right:3px;"></i>导出当前页数据
</span>
<script>
    function excelPageData () {
        var originData = dataSource.data();
        excelData(originData);
    }
</script>

 

 
 
 
 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 

附件列表

 

转载于:https://www.cnblogs.com/wuqichuan666/p/9453037.html

相关文章:

  • js 和 css动画
  • [IOI2007 D1T1]Miners 矿工配餐
  • 10.监视SQL Server性能
  • QEMU增量镜像制作
  • SpringBoot 核心模块原理剖析
  • Confluence 6 的小型文字档案(Cookies)
  • WPF中使用amCharts绘制股票K线图
  • 装饰者模式--穿什么有这么重要?
  • 健身:手臂训练
  • SQLServer------查询结果为空的列赋默认值
  • 精简分页组件(手写)
  • Flutter 06:【小插曲】请慎重升级最新版本 AndroidStudio
  • 分页查询对象列表ListT findListByPage运用
  • centos /linux 修改目录或文件权限
  • Npm 多模块依赖解决方案
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 03Go 类型总结
  • const let
  • C语言笔记(第一章:C语言编程)
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • java中的hashCode
  • Laravel5.4 Queues队列学习
  • leetcode98. Validate Binary Search Tree
  • Linux下的乱码问题
  • maya建模与骨骼动画快速实现人工鱼
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • python 学习笔记 - Queue Pipes,进程间通讯
  • React 快速上手 - 07 前端路由 react-router
  • Web标准制定过程
  • 构建工具 - 收藏集 - 掘金
  • 简单易用的leetcode开发测试工具(npm)
  • 前端学习笔记之观察者模式
  • 使用docker-compose进行多节点部署
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 使用putty远程连接linux
  • 我是如何设计 Upload 上传组件的
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 湖北分布式智能数据采集方法有哪些?
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 选择阿里云数据库HBase版十大理由
  • ​力扣解法汇总946-验证栈序列
  • ​批处理文件中的errorlevel用法
  • #{}和${}的区别?
  • #图像处理
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (Matlab)使用竞争神经网络实现数据聚类
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (九)One-Wire总线-DS18B20
  • (学习日记)2024.01.09
  • (转载)CentOS查看系统信息|CentOS查看命令
  • .gitattributes 文件
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。