TableTools Export Excel前Table内容格式的转换应用

我们做项目的时候,用DataTable插件TableTools

页面引用如下:

<script src="@Url.Content("~/Content/media/js/TableTools.min.js")" type="text/javascript"></script>
<link href="@Url.Content("~/Content/media/css/TableTools.css")" rel="stylesheet" />

导出Excel的格式:
这里写图片描述

结果发现 Account# 那一列的格式是数字。 问题来了,如果Account# 的内容是 000001245678,那么那一列将把00000取掉,在Excel中无论怎么设置单元格列的格式,都不能将这一列还原出来,那么这一列的值就失去了它本身的价值

解决方案一:

TableTools 导出的Excelnotepad打开,全选复制,然后新建一个Excel格式的文件,粘贴 就可以 完成这样的需求。

缺点:用户是上帝,这样导致用户操作3次,体验差,下下策

解决方案二:

突破问题关键点: 查了各种资料,单纯的Excel中,要想将0开头的字符串全部显示出来 可以用(等号双引号将要显示的内容括起来) =“”

于是在TableTools导出Excel之前,我需要将 Table特定列的值做一个处理,查看官方TableTools资料,用了几行代码就处理了,具体看代码实现:

<script type="text/javascript">
    $(document).ready(function () {
        $("#RepPaymentTable").dataTable(
          {
              "bFilter": false,
              "bSort": true,
              "bInfo": false,
              "bPaginate": false,
              "bStateSave": false,
              "sDom": "t",
              "bJQueryUI": true,
              "aaSorting": [],
              "sDom": '<"H"Tfl>t<"F"ip>',
              "oTableTools": {
                  "sSwfPath": "@Url.Content("~/Content/media/swf/copy_csv_xls.swf")",
                  "aButtons": [
                  {
                      "sExtends": "xls",
                      "bFooter": false,
                      "fnCellRender": function (sValue, iColumn, nTr, iDataIndex) {

   if (iColumn === 2) {     

//此列就是Account# 对应要处理的形式,官方对fnCellRender的几个从参数做了如下的解释:  

//1.* - The value from the cell's data(本列对应的值)

//2.int - The column number being read(列号,经验证,列号是从0开始的)

//3.node - The TR element for the row(本行对象)

//4.int - The internal DataTables cache index for the row (based on fnGetPosition)(该行的内部数据表缓存索引(基于fnGetPosition ))

            if (sValue != ""){
                      return "=\"" + sValue + "\"";
                              }
              }
                          return sValue;
                      }
                  }
                  ],
              }
          });
    });
</script>

简单记录完毕

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值