• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    DEDE自定义表单导出功能的实现详细步骤
    POST TIME:2021-05-23 02:28
    DEDE自定义表单导出功能的实现详细步骤,这个代码是通用的!加完后  你所有的自定义表单 都可以导出!


    步骤:
    1.打开 /dede/templets/diy_main.htm   大概在第49行的地方加上
    <a href="../plus/diy.php?action=push&diyid={dede:field.diyid/}" target="_blank">导出</a>
    意思就是加个导出按钮。

    2.打开 /plus/diy.php   在最下面加入以下代码
    else if($action == 'push')
    {
      $row = $dsql->GetOne("Select * From dede_diyforms where diyid='$diyid'");
      $ds = file(('/dede/inc/fieldtype.txt'));
    foreach($ds as $d){
    $dds = explode(',',trim($d));
    $fieldtypes[$dds[0]] = $dds[1];
    }
    $fieldset = $row['info'];
    $dtp = new DedeTagParse();
    $dtp->SetNameSpace("field","<",">");
    $dtp->LoadSource($fieldset);
    $titleArray=array();
    $titleName=array();
    if(is_array($dtp->CTags)){
    foreach($dtp->CTags as $ctag)
    {
    $itname = $ctag->GetAtt('itemname');
    if($itname=='') echo "没指定";
    $titleArray[] = $itname;
    $titleName[]= $ctag->GetTagName();
    }
    }
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment; filename=demo.xls');
    header('Pragma: no-cache');
    header('Expires: 0');
    $title =$titleArray;
    include_once DEDEINC.'/datalistcp.class.php';
        if($diy->public == 2)
            $query = "SELECT * FROM `{$diy->table}` ORDER BY id DESC";
        else
            $query = "SELECT * FROM `{$diy->table}` WHERE ifcheck=1 ORDER BY id DESC";
    
        $datalist = new DataListCP();
        $datalist->pageSize = 10;
        $datalist->SetParameter('action', 'list');
        $datalist->SetParameter('diyid', $diyid);
        $datalist->SetSource($query);   
    $rsArray = array();
    $datalist->dsql->Execute('dlist',$datalist->sourceSql);
            $i = 0;
            while($arr=$datalist->dsql->GetArray('dlist'))
            {
            $i++;  
            $object = array();
            foreach ($titleName as $va){
            $object[]=$arr[$va];
            }
                $rsArray[$i] = $object;
               
            }
    $data = $rsArray;
    echo iconv('utf-8', 'gbk', implode("\t", $title)), "\n";
    foreach ($data as $value) {
    echo iconv('utf-8', 'gbk', implode("\t", $value)), "\n";
    }
    exit;
    }



    就OK了。


    思路很简单,先在列表页搞个可以触发导出的按钮,然后把需要导出的表头和内容查出来,然后以execle输出就好了。
    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!