直接在后台数据库中导出(最简单,适合新手)
这种方法不需要修改任何代码,直接利用数据库管理工具(如phpMyAdmin)来导出数据。

优点:
- 零技术门槛,操作简单。
- 100%准确,直接导出原始数据。
缺点:
- 需要手动登录数据库管理后台。
- 每次导出都需要重复操作,不方便自动化。
- 如果表单字段很多,导出的CSV文件可能没有表头,需要后期整理。
操作步骤:
-
登录数据库管理工具:通过您的网站主机控制面板(如cPanel、宝塔面板等)找到phpMyAdmin并登录。
(图片来源网络,侵删) -
选择正确的数据库:在左侧列表中,选择您的织梦网站所使用的数据库。
-
找到表单数据表:在数据库中,找到名为
#@_dede_addonxx的表,这里的xx是一个数字,这个数字是在您创建自定义表单时系统自动生成的。- 如何找到正确的表? 最稳妥的方法是登录织梦后台,进入“自定义表单”管理,点击“管理表单”,在列表中查看“数据表”这一列,它会明确告诉你对应的是哪个数据表(
dede_addon18)。
- 如何找到正确的表? 最稳妥的方法是登录织梦后台,进入“自定义表单”管理,点击“管理表单”,在列表中查看“数据表”这一列,它会明确告诉你对应的是哪个数据表(
-
导出数据:
- 点击该表名进入数据浏览页面。
- 点击顶部的“导出”选项卡。
- 在“导出方法”中选择“快速”或“自定义”。
- 在“格式”下拉菜单中,强烈建议选择 CSV 或 Excel 格式。
- 点击“执行”按钮。
-
下载文件:浏览器会开始下载一个包含所有表单数据的CSV或Excel文件,你可以用Excel或WPS打开它进行查看和编辑。
修改织梦后台,增加“一键导出”按钮(推荐,适合有一定PHP基础的用户)
这是最常用且最方便的方法,通过修改PHP文件,在自定义表单管理后台直接添加一个导出按钮,点击即可下载。
优点:
- 操作直观,一键完成。
- 导出的文件通常带有中文表头,方便识别。
- 非常适合需要频繁导出的场景。
缺点:
- 需要修改织梦核心文件,升级织梦时可能需要重新修改。
- 需要基本的PHP和HTML知识。
操作步骤:
-
定位文件:使用FTP工具或主机文件管理器,登录到您的网站服务器,找到以下文件:
dede/templets/diy_list.htm -
修改文件:用代码编辑器(如VS Code, Sublime Text, Notepad++)打开
diy_list.htm文件。 -
添加导出按钮:在文件中找到
<div class="bodytitle"> ... </div>或类似的包含操作按钮的区域,在合适的位置(删除”按钮旁边)添加以下HTML代码:<a href="diy.php?action=export&diyid={dede:global.diyid/}" class="btn btn-success"> <i class="fa fa-file-excel-o"></i> 导出表单数据 </a>diy.php?action=export:这是告诉织梦执行导出操作。diyid={dede:global.diyid/}:这是动态获取当前自定义表单的ID,确保导出的是正确的表数据。class="btn btn-success":这是织梦后台的CSS类,可以让按钮样式和后台保持一致。
-
处理导出逻辑:现在点击按钮会报错,因为我们还没有创建处理导出功能的PHP代码,我们需要修改
dede/diy.php文件。 -
修改
diy.php文件:- 打开
dede/diy.php文件。 - 在文件末尾,
?>标签之前,添加如下PHP代码:
//------------------------------ 导出自定义表单数据 ------------------------------ else if($action == 'export') { // 获取当前表单ID $diyid = isset($diyid) && is_numeric($diyid) ? $diyid : 0; if(!$diyid) { ShowMsg('未指定表单ID!', '-1'); exit(); } // 获取表单信息 $row = $dsql->GetOne("SELECT * FROM `#@_diyforms` WHERE diyid='$diyid'"); if(!$row) { ShowMsg('指定的自定义表单不存在!', '-1'); exit(); } // 获取表单字段 $fieldQuery = "SELECT * FROM `#@_diyfields` WHERE diyid='$diyid' ORDER BY disorder ASC"; $fields = array(); $dsql->SetQuery($fieldQuery); $dsql->Execute(); while($frow = $dsql->GetArray()) { $fields[] = $frow['itemname']; } // 设置CSV表头 $csv_header = implode(',', $fields) . "\n"; // 查询数据 $query = "SELECT * FROM `{$row['table_name']}` ORDER BY id DESC"; $dsql->SetQuery($query); $dsql->Execute(); $csv_data = ''; while($arr = $dsql->GetArray()) { foreach($fields as $field) { // 处理CSV中的特殊字符,如逗号、引号等 $value = isset($arr[$field]) ? $arr[$field] : ''; $value = str_replace('"', '""', $value); // 双引号转两个双引号 if(strpos($value, ',') !== false || strpos($value, "\n") !== false) { $value = '"' . $value . '"'; // 包含逗号或换行符的值用双引号括起来 } $csv_data .= $value . ','; } $csv_data = rtrim($csv_data, ',') . "\n"; } // 生成文件名 $filename = $row['name'] . '_' . date('YmdHis') . '.csv'; // 设置响应头,强制下载 header("Content-type: text/csv"); header("Content-Disposition: attachment; filename=" . $filename); header("Cache-Control: max-age=0"); echo $csv_header . $csv_data; exit(); } - 打开
-
保存并测试:保存
diy.php和diy_list.htm两个文件,登录织梦后台,进入“自定义表单”管理页面,你应该能看到新添加的“导出表单数据”按钮,点击它,浏览器就会自动下载一个CSV文件。
使用第三方插件或模块(最省心,适合不想写代码的用户)
织梦的官方市场或一些第三方开发者提供了专门的自定义表单管理插件,这些插件通常内置了强大的导出功能,比如支持导出为Excel、筛选导出等。
优点:
- 即插即用,安装简单。
- 功能通常更强大,如支持多格式导出、数据筛选、批量操作等。
- 升级织梦时,如果插件兼容性好,则无需担心。
缺点:
- 可能需要付费购买高级版。
- 需要从第三方渠道下载,存在一定的安全风险(需选择可靠的来源)。
如何寻找:
- 在织梦梦网的插件频道搜索“自定义表单”、“表单管理”、“导出”等关键词。
- 在一些知名的织梦模板网站或开发者社区寻找推荐。
总结与建议
| 方法 | 优点 | 缺点 | 适合人群 |
|---|---|---|---|
| 数据库导出 | 简单、准确、零代码 | 操作繁琐、无表头 | 偶尔需要导出数据的网站管理员或新手 |
| 修改代码 | 一键操作、有表头、高效 | 需要改代码、升级需维护 | 有一定PHP基础、需要频繁导出的用户 |
| 第三方插件 | 功能强大、安装方便 | 可能收费、有安全风险 | 不想写代码、需要高级功能的用户 |
对于绝大多数用户来说,强烈推荐方法二,它是一次性的简单修改,能带来极大的便利,而且能让你更了解织梦的运作机制,如果你对代码感到畏惧,或者有更复杂的需求,再考虑方法三,方法一则作为最后的备选方案。
