GridManager 导出功能

导出功能现在分为两种模式: static, blob, url

初始化时指定启用导出功能。方式如下:
<table></table>
var table = document.querySelector('table')
table.GM({
    gridManagerName: 'demo-export',
    ajax_url: 'http://www.lovejavascript.com/learnLinkManager/getLearnLinkList',
    ajax_type: 'POST',
    supportAjaxPage: true,
    supportExport:true, // 配置启用导出功能, 默认即为true
    exportConfig: {
       // 导出的方式: 默认为static
       // 1.static: 前端静态导出, 无需后端提供接口,该方式导出的文件并不完美。
       // 2.blob: 通过后端接口返回二进制流。`nodejs`可使用`js-xlsx`, `java`可使用 `org.apache.poi`生成二进制流。
       // 3.url: 通过配置或由后端返回下载地址
       mode: 'static',
    
       // 导出的后缀名 , 默认为`xls`
       suffix: 'xls',
    
       
       // 导出处理器函数
       // fileName: 导出文件名
       // query: 查询参数
       // pageData: 分页数据
       // sortData: 排序数据
       // selectedList: 当前选中的数据
       // tableData: 当前页数据
       handler: (fileName, query, pageData, sortData, selectedList, tableData) => {
          // mode === 'static'时handler函数return 二维数组; 
          // return [["title", "content", "createData"],["typescript", "this is typescript", "2015-01-01"]]
          
          // mode === 'blob'时,handler函数需要返回resolve(blob)的promise
          // 需要通过promise中的resolve()返回二进制流(blob),有两种返回格式:
          // 1. return new Promise(resolve => {resolve(blob)});
          // 2. return new Promise(resolve => {resolve({data: blob})});
    
          // mode === 'url'时,handler函数需要返回url或返回resolve(url)的promise
          // 1. return 'xxx.xxx.com/xxx.xls';
          // 2. return new Promise(resolve => {resolve('xxx.xxx.com/xxx.xls')})
       }
    },
    query: {pluginId: 1},
    columnData: [
        {
            key: 'name',
            text: 'name'
        },{
            key: 'info',
            text: 'info'
        },{
            key: 'url',
            text: 'url',
            template: function(url, rowObject){
                return '<a style="color:#337ab7;" href="'+url+'" target="_blank">点击跳转</a>';
            }
        },{
        key: 'action',
        remind: 'the action',
        width: '100px',
        text: '操作',
        template: function(action, rowObject){
            return '<a style="color:#337ab7;" href="javascript:;" οnclick="testEditFN()" learnLink-name="'+rowObject.name+'">编辑</a>';
        }
    }]
});
渲染完成后,通过 exportGrid 方法进行调用
GridManager.exportGrid('demo-export', fileName, onlyChecked)
exportGrid方法,参数说明:
  • table: 需要操作的table 或 table的gridManagerName值

  • fileName: 导出后使用的文件名,如果不设置将使用插件配置项gridManagerName。

  • onlyChecked:是否仅导出选中的项, 默认为false

注意事项
  • mode = static: 前端静态导出,无需后端提供接口,该方式导出的文件并不完美,建议使用blob方式。

  • 导出功能的操作界面为右键菜单,如果在初始化时配置 supportMenu=false, 那么导出即使生效也无法通过界面操作。

源码地址: github

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值