miniui -- 当前页export to excel



只能导出当前页面(如果需要导出所筛选的数据结果,则需在后台进行相关导出操作)


<div style="padding-bottom:5px;">
        
        <span>员工姓名:</span><input type="text" id="key"  />
        <input type="button" value="查找" οnclick="search()"/>
        
        <input type="button" value="导出Excel" οnclick="ExportExcel()" style="margin-left:50px;"/>
    </div>
    <div id="datagrid1" class="mini-datagrid" style="width:800px;height:280px;" allowResize="true"
         url="../data/AjaxService.aspx?method=SearchEmployees" idField="id" multiSelect="true">
        <div property="columns">
            <div type="indexcolumn"></div>        
            <div type="checkcolumn"></div>
            <div field="loginname" width="120" headerAlign="center" allowSort="true">员工帐号</div>
            <div field="name" width="120" headerAlign="center" allowSort="true">姓名</div>
            <div header="工作信息">
                <div property="columns">
                    <div field="dept_name" width="120">所属部门</div>
                    <div field="position_name" width="100">职位</div>
                    <div field="salary" dataType="currency" currencyUnit="¥" align="right" width="100" allowSort="true">薪资</div>
                </div>
            </div>
            <div field="createtime" width="100" headerAlign="center" dateFormat="yyyy-MM-dd" allowSort="true">创建日期</div>
            <div header="基本信息">
                <div property="columns">
                    <div field="gender" width="100" renderer="onGenderRenderer">性别</div>
                    <div field="age" width="100" allowSort="true">年龄</div>
                    <div field="birthday" width="100" renderer="onBirthdayRenderer">出生日期</div>
                    <div field="married" width="100" align="center" renderer="onMarriedRenderer">婚否</div>
                    <div field="email" width="100">邮箱</div>
                </div>
            </div>
            <div header="学历信息">
                <div property="columns">
                    <div field="educational_name" width="100">学历</div>
                    <div field="school" width="120">毕业院校</div>
                </div>
            </div>
        </div>
    </div>
    
    <iframe id="exportIFrame" style="display:none;"></iframe>
    

    <script type="text/javascript">
        mini.parse();

        var grid = mini.get("datagrid1");
        grid.load();

        //对"createtime"字段,进行降级排序
        grid.sortBy("createtime", "desc");

        function search() {
            var key = document.getElementById("key").value;
            grid.load({ key: key });
        }
        $("#key").bind("keydown", function (e) {
            if (e.keyCode == 13) {
                search();
            }
        });
        ///
        var Genders = [{ id: 1, text: '男' }, { id: 2, text: '女'}];
        function onGenderRenderer(e) {
            for (var i = 0, l = Genders.length; i < l; i++) {
                var g = Genders[i];
                if (g.id == e.value) return g.text;
            }
            return "";
        }

        function ExportExcel() {
            var columns = grid.columns;

            function getColumns(columns) {
                var cols = [];
                for (var i = 0; i < columns.length; i++) {
                    var column = columns[i];

                    var col = { header: column.header, field: column.field, type: column.type };
                    if (column.columns) {
                        col.columns = getColumns(column.columns);
                    }
                    cols.push(col);

                }
                return cols;
            }
            var columns = getColumns(columns);

            DownLoad("export.aspx", { type: "excel", columns: columns });

        }

        function DownLoad(url, fields) {

            //创建Form
            var submitfrm = document.createElement("form");
            submitfrm.action = url;
            submitfrm.method = "post";
            submitfrm.target = "_blank";
            document.body.appendChild(submitfrm);

            if (fields) {

                for (var p in fields) {
                    var input = mini.append(submitfrm, "<input type='hidden' name='" + p + "'>");
                    var v = fields[p];
                    if (typeof v != "string") v = mini.encode(v);
                    input.value = v;
                }
            }

            submitfrm.submit();
            setTimeout(function () {
                submitfrm.parentNode.removeChild(submitfrm);
            }, 1000);
        }

    </script>


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
您提到的"vue-element-admin"是一个基于Vue.js和Element UI的后台管理系统模板。关于Excel导出的功能,vue-element-admin已经提供了相应的组件和方法。 在vue-element-admin中,可以使用"Export2Excel"这个工具类来实现Excel导出功能。该工具类封装了js-xlsx库,可以将数据导出为Excel文件。 使用步骤如下: 1. 首先,在您的项目中安装js-xlsx库。可以使用npm或yarn命令进行安装: ```bash npm install xlsx # 或者 yarn add xlsx ``` 2. 在需要使用Excel导出功能的组件中,引入"Export2Excel"工具类: ```javascript import { export_json_to_excel } from '@/excel/Export2Excel'; ``` 3. 准备要导出的数据。将需要导出的数据组织成一个数组。 4. 在需要触发导出的方法中,调用"export_json_to_excel"方法,传入数据数组和Excel文件名。例如: ```javascript exportData() { const data = [ { name: '张三', age: 20, gender: '男' }, { name: '李四', age: 25, gender: '女' }, // 更多数据... ]; const tHeader = ['姓名', '年龄', '性别']; const filterVal = ['name', 'age', 'gender']; const excelName = '导出数据'; export_json_to_excel(tHeader, data, filterVal, excelName); } ``` 在上述示例中,"tHeader"数组定义了Excel表格的表头,"filterVal"数组定义了需要导出的数据字段名,"excelName"是导出的Excel文件名。 通过调用"export_json_to_excel"方法,将数据导出为Excel文件。 这样,您就可以在vue-element-admin中实现Excel导出功能了。希望这些信息能够对您有所帮助!如有更多问题,欢迎继续提问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值