bootstrap-table-export数据导出问题

首先导入js插件库 bootstrap-table-export.js 和tableExport.js

一、由于前台都是使用js加载数据和官方的js库支持的方法不同,出现了导出的excel文件一直为空的问题

 在导出时获取数据的方法findRows(tableExport.js文件中)中原方法如下:

function findRows ($tpart, rowSelector) {
        return $tpart.find(rowSelector).filter (function () {
          return $(this).find('table').length === 0 && $(this).parents('table').length === 1;
        });
      }

在获取数据后加了一个过滤器,由于页面加载数据的方式不同,导致$tpart中是没有table标签的,所以返回值为空,导致导出的文件数据一直是空。在此处可以将后边的过滤器去掉,正常返回数据就可以了。

function findRows ($tpart, rowSelector) {
        return $tpart.find(rowSelector);
        /*.filter (function () {
          return $(this).find('table').length === 0 && $(this).parents('table').length === 1;
        });*/
      }

二、但是接下来,又有了新的问题,导出的数据中,如果有数字类型的,或者字符串以0开头的,会自动去掉。

在网上查了后,可以加"mso-number-format:\@\''将值以文本类型输出,在tableExport.js文件中将源代码改成如下方式,即解决问题:

  var tdcss   = $(cell).data("tableexport-msonumberformat");

                  if ( typeof tdcss == 'undefined' && typeof defaults.onMsoNumberFormat === 'function' )
                    tdcss = defaults.onMsoNumberFormat(cell, row, col);
                  
                  /*if ( typeof tdcss != 'undefined' && tdcss !== '' )
                    tdstyle = 'style="mso-number-format:\'' + tdcss + '\'';*/
                    tdstyle = 'style="mso-number-format:\@\'' + tdcss + '\'';

三、然而接下又一个坑来了。测试时只用WPS测试了,发现用office根本没用。文件用记事本打开,发现值是没有问题的,只是office不识别。用WPS和office的excel试了半天,在单元格上加了一个属性解决了问题,如下:trData += '<td x:str='+tdvalue; 

转载于:https://my.oschina.net/u/3267563/blog/1627021

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值