第二篇 JS导出Excel文件

**html代码**

<a class="btn btn-danger btn-import" onclick="tableToExcel()" data-toggle="dropdown"><i class="fa fa-upload"></i>导出</a>

**js代码**
const jsonData = data;//这个是后台输出的数据
  //列标题,逗号隔开,每一个逗号就是隔开一个单元格
  let str = `ID,姓名,手机号,性别,出身年月,余额,积分,加入时间,过敏史\n`;
  //增加\t为了不让表格显示科学计数法或者其他格式
  for(let i = 0 ; i < jsonData.length ; i++ ){
      for(let item in jsonData[i]){
          str+=`${jsonData[i][item] + '\t'},`;
      }
      str+='\n';
  }
  //encodeURIComponent解决中文乱码
  let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str);
  //通过创建a标签实现
  let link = document.createElement("a");
  link.href = uri;
  //对下载的文件命名
  link.download =  "患者账户列表.xls";
  document.body.appendChild(link);
  link.click();
  document.body.removeChild(link);
  **用ajax可以这样写**

function tableToExcel(){

     $.ajax({
            type: "post",
            url: "user/tabletoexcel",
            data: {'search_key':search_key},
            success : function(data){
                console.log(data);
                if (data.length > 0) {
                    const jsonData = data;
                    //列标题,逗号隔开,每一个逗号就是隔开一个单元格
                    let str = `ID,姓名,手机号,性别,出身年月,余额,积分,加入时间,过敏史\n`;
                    //增加\t为了不让表格显示科学计数法或者其他格式
                    for(let i = 0 ; i < jsonData.length ; i++ ){
                        for(let item in jsonData[i]){
                            str+=`${jsonData[i][item] + '\t'},`;
                        }
                        str+='\n';
                    }
                    //encodeURIComponent解决中文乱码
                    let uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(str);
                    //通过创建a标签实现
                    let link = document.createElement("a");
                    link.href = uri;
                    //对下载的文件命名
                    link.download =  "患者账户列表.xls";
                    document.body.appendChild(link);
                    link.click();
                    document.body.removeChild(link);
                } else {
                    layer.msg('导出失败', {icon: 2});return;
                }
            }
        });

}
 
   **PHP可以这样写,只需要返回一个二维数组就行**
        public function tableToExcel(){
                $search_key = $this->reques->param('search_key');
                $list = Db::name('table_name')->where(['search_key'=>$search_key])->field('search_field')->select();
                return $list;
        }

参考了好些大佬的博客,这个感觉最简单

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值