使用DedeCMS数据导入/采集插件(最推荐、最安全)
这是最标准、最安全的方法,很多开发者制作了专门用于数据导入的插件,它们能将Excel表格中的数据完美地解析并填充到DedeCMS的相应数据表中。
操作步骤:
-
准备Excel表格
-
格式要求:第一行必须是标题行,列名需要与DedeCMS后台添加文章时填写的字段名完全一致。
-
常见字段对应关系:
- ->
title 栏目->typeid(这里需要填写栏目ID,而不是栏目名称)作者->writer来源->source摘要->description- ->
body(这里是核心,内容需要是HTML格式) 缩略图->litpic(填写图片的完整URL地址)Tags->tags(用逗号分隔)
- ->
-
示例Excel表格: | typeid | writer | source | body | litpic | tags | | :--- | :--- | :--- | :--- | :--- | :--- | :--- |1 | 1 | 张三 | 本站 |
<p>这是第一篇文章的内容...</p>|/uploads/2025/img1.jpg| 科技,新闻 |2 | 2 | 李四 | 网络转载 |<p>这是第二篇文章的内容...</p>|/uploads/2025/img2.jpg| 生活,分享 || 3 | 王五 | 官方 |<p>这是新产品的详细介绍...</p>|/uploads/2025/product1.jpg| 产品,数码 | -
保存格式:将Excel文件另存为
.csv格式(逗号分隔值),这是最通用的格式。
-
-
寻找并安装插件
- 来源:可以在DedeCMS官方论坛、一些知名的DedeCMS资源网站(如“织梦吧”、“源码时代”等)搜索关键词“DedeCMS 数据导入”、“DedeCMS Excel导入”、“DedeCMS 批量添加”。
- 选择插件:选择一个评价好、更新日期相对较新的插件,注意查看插件是否支持你的DedeCMS版本(如DedeCMS 5.7、DedeCMS V57、DedeCMS V57sp1等)。
- 安装:下载插件后,按照其说明文档进行安装,通常包括上传插件文件到
/dede/目录,然后在后台“模块” -> “模块管理”中安装并启用。
-
使用插件导入数据
- 登录DedeCMS后台,找到新安装的插件菜单。
- 进入导入界面,通常会看到上传文件的选项。
- 上一步保存好的
.csv文件。 - 关键设置:
- 栏目对应:确认Excel中的
typeid列是否正确对应了DedeCMS的栏目ID。 - 内容字段:确认
body列对应的是文章内容。 - 字符集:确保字符集是
UTF-8,以避免乱码。
- 栏目对应:确认Excel中的
- 点击“开始导入”或类似按钮。
-
检查结果
- 导入完成后,插件会提示成功或失败的数量。
- ” -> “文档列表”,检查新添加的文章是否正确,内容、图片、标签等是否正常显示。
利用DedeCMS自带的“远程采集”功能(有一定技术门槛)
这个方法比较巧妙,利用了DedeCMS强大的采集功能,将Excel文件托管到网上,然后通过采集规则来抓取数据。
操作步骤:
-
准备Excel并上传
- 按照方法一的要求准备好Excel表格,并保存为HTML格式(文件后缀为
.html)。 - 将这个HTML文件上传到你网站服务器上的任意一个可公开访问的目录(
mydata/import.html)。
- 按照方法一的要求准备好Excel表格,并保存为HTML格式(文件后缀为
-
在Excel中添加URL列
- 重新打开Excel,新增一列,命名为
url。 - 在这一列的每一行中,填入你刚刚上传的HTML文件的完整URL地址,并加上一个锚点(#)指向每一行数据的标题。
http://www.yourdomain.com/mydata/import.html#新文章标题1。 - 重要:你的HTML文件中的每一行数据需要有一个唯一的
id属性,与锚点名称对应,第一行数据的<tr id="新文章标题1">。
- 重新打开Excel,新增一列,命名为
-
配置远程采集
- 在DedeCMS后台,进入“采集” -> “远程采集”。
- 新建采集节点:
- 网站名称:随便起一个,如“Excel数据导入”。
- 起始URL:填写你上传的HTML文件的URL,如
http://www.yourdomain.com/mydata/import.html。 - 列表规则:由于我们要采集的是整个文件里的所有行,列表规则可以简单设置为
//table(假设你的数据都在一个table里)。 - 内容规则:这是最关键的一步,你需要编写XPath规则来匹配你Excel HTML中的每一列数据。
- 标题:
//tr[#id]/td[1](选择id属性为当前标题的tr下的第一个td) - 内容:
//tr[#id]/td[5](选择第5个td,即body列) - ...以此类推,为每个字段配置好规则。
- 标题:
- 保存并测试采集:保存节点,然后点击“开始采集”,系统会遍历列表中的每个URL(即每个锚点),并根据内容规则抓取数据,最终生成文章。
-
检查结果
采集完成后,到“文档列表”中查看结果。
此方法的优缺点:
- 优点:无需安装第三方插件,利用系统自带功能。
- 缺点:设置复杂,需要懂XPath规则,容易出错,不适合新手。
手动修改数据库(高风险,仅适用于高级用户)
如果你对数据库非常熟悉,并且数据量不大,可以直接操作数据库。
操作步骤:
-
准备工作
- 备份数据库:在操作前务必备份数据库! 这是最重要的安全措施。
- 分析数据表:你需要了解DedeCMS文章的核心数据表是
dede_archives(文章列表) 和dede_addonarticle(文章附加表,对于普通文章模型)。 - 整理数据:将Excel数据整理成规范的格式,特别是
typeid(栏目ID)和bodyHTML)。
-
编写SQL语句
-
你需要为每一行数据编写一条
INSERT语句,这是一个非常繁琐且容易出错的过程。 -
示例SQL:
-- 插入到主表 dede_archives INSERT INTO `dede_archives` (`typeid`, `typeid2`, `sortrank`, `flag`, `ismake`, `channel`, `arcrank`, `click`, `money`, `title`, `shorttitle`, `color`, `writer`, `source`, `litpic`, `pubdate`, `senddate`, `mid`, `keywords`, `description`, `notpost`, `arcclick`, `adminid`, `ishtml`, `filename`, `dutyadmin`, `templet`) VALUES (1, 0, 1633027200, 'c', -1, 1, 0, 0, 0, '新文章标题1', '', '', '张三', '本站', '/uploads/2025/img1.jpg', 1633027200, 1633027200, 1, '科技,新闻', '这是文章摘要', 0, 0, 1, 0, '', 1, ''); -- 插入到附加表 dede_addonarticle INSERT INTO `dede_addonarticle` (`aid`, `body`, `templet`, `userip`) VALUES (LAST_INSERT_ID(), '<p>这是第一篇文章的内容...</p>', '', '127.0.0.1');
-
LAST_INSERT_ID()函数非常重要,它用于获取上一条INSERT语句产生的自增ID,确保主表和附加表的aid(文章ID)一致。
-
-
执行SQL
在DedeCMS后台的“系统” -> “SQL命令行工具”中,将编写好的SQL语句粘贴进去执行,或者使用phpMyAdmin等数据库管理工具执行。
此方法的优缺点:
- 优点:最快,直接对数据库操作,不经过任何程序逻辑。
- 缺点:风险极高! 一个字符错误都可能导致数据错乱、网站崩溃。强烈不推荐普通用户使用。
总结与建议
| 方法 | 优点 | 缺点 | 推荐人群 |
|---|---|---|---|
| 插件导入 | 安全、稳定、操作简单、功能强大 | 需要寻找并安装合适的插件 | 所有用户,尤其是新手和普通站长 |
| 远程采集 | 利用系统自带功能,无需插件 | 设置复杂,需要技术知识,容易出错 | 有一定DedeCMS和XPath基础的用户 |
| 手动SQL | 速度快,最直接 | 风险极高,极易出错,繁琐 | 仅限数据库专家,不推荐 |
最终建议:
对于绝大多数用户,请优先选择方法一“使用插件”,这是最符合DedeCMS设计理念、最安全可靠的方式,花点时间寻找一个好用的插件,远比冒着风险去尝试其他方法要值得。
