乖兔博客

乖兔 > CMS系统 > 织梦dedecms自定义表单添加导出excel表格功能

织梦dedecms自定义表单添加导出excel表格功能

乖兔 更新于: 2021-04-04 分类:CMS系统

织梦cms有个很实用的功能:自定义表单。使用自定义表单功能可以在前台实现很多不同格式的数据提交需求,比如访客需求记录、学员报名表单等等。通过简单的二次开发,添加dedecms自定义表单自动邮件通知,还可以实现访客提交表单数据后自动发送通知给网站维护人员的邮箱,避免错过信息。

织梦cms自定义表单导出到Excel.jpg

但是,织梦只是一套网站cms程序,并不适合做数据分析,如果一天内有成百上千个数据需要处理的话,一条条复制到Excel无疑是一项艰难的工作,今天就讲一下,怎么通过对dede程序的二次开发来实现将自定义表单批量导出到Excel表格里面。

dedecms自定义表单导出Excel涉及修改的文件:

  • \dede\templets\diy_main.htm

  • \dede\diy_list.php

修改步骤:

打开\dede\templets\diy_main.htm搜索前台预览,在他下面另起一行添加下面代码

&nbsp;|&nbsp;<a href='diy_list.php?action=excel&diyid={dede:field.diyid/}' target="_blank">导出表单Excel</a>

修改后保存,然后打开\dede\diy_list.php搜索

'post', 'list', 'edit', 'check', 'delete'

修改成

'post', 'list', 'edit', 'check', 'delete','excel'

在文件的最后找到

else
{
    showmsg('未定义操作', "-1");
}

在他的前面添加以下代码

elseif($action == 'excel')
{    
	ob_end_clean();//清除缓冲区,避免乱码
    header("Content-type:application/vnd.ms-excel");
    header("Content-Disposition:attachment;filename={$diy->name}_".date("Y-m-d").".xls");
	print(chr(0xEF).chr(0xBB).chr(0xBF));//清除bom
    $fieldlist = $diy->getFieldList();
    echo "<table><tr>";
    foreach($fieldlist as $field=>$fielddata)
    {
        echo "<th>{$fielddata[0]}</th>";
    }
    echo "<th>状态</th>";
    echo "</tr>";
    $sql = "SELECT * FROM {$diy->table} ORDER BY id DESC";
    $dsql->SetQuery($sql);
    $dsql->Execute('t');
    while($arr = $dsql->GetArray('t'))
    {
        echo "<tr>";
        foreach($fieldlist as $key => $field)
        {
            echo "<td>".$arr[$key]."</td>";
        }
    $status = $arr['ifcheck'] == 1 ? '已审核' : '未审核';
    echo "<td>".$status."</td>";
    echo "</tr>";
    }
    echo "</table>";
}

保存后,在网站后台刷新下就可以看到导出表单Excel选项了。

打赏