核心原理
在了解具体方法前,先明白DedeCMS批量导入的核心原理:

(图片来源网络,侵删)
- 数据直接写入数据库:最高效的方式是直接构造符合
dede_archives(文章主表)、dede_addonarticle(文章附加表,用于存储文章内容)、dede_arctype(栏目表) 等表结构的数据,然后通过SQL语句或程序脚本批量插入。 - 模拟后台操作:一些插件通过模拟浏览器在后台填写表单、点击提交的方式来实现批量上传,这种方式效率较低,且容易出错。
- 解析XML/CSV/Excel文件:插件会读取您准备好的结构化数据文件(如Excel、CSV),然后将其转换为DedeCMS可识别的数据格式,再进行导入。
官方自带功能(Excel导入)
这是DedeCMS官方内置的功能,虽然功能有限,但对于少量、有固定格式的文章导入非常方便,也是最安全的方式。
优点:
- 无需安装任何插件,系统自带。
- 操作简单,图形化界面。
- 安全稳定,不易出错。
缺点:
- 导入字段非常有限,通常只支持:标题、栏目、关键词、内容摘要、作者、来源、内容等。
- 不支持自定义字段(除非你修改了官方代码)。
- 对Excel的格式要求严格,必须严格按照模板来。
- 一次导入数量有限,不适合大规模导入。
操作步骤:

(图片来源网络,侵删)
-
准备Excel模板:
- 进入DedeCMS后台,找到【核心】 -> 【批量内容维护】 -> 【Excel导入数据】。
- 在页面下方,点击【下载内容导入模板Excel文件】。
- 重要:务必下载这个官方模板,不要自己新建Excel,这个模板的列名、顺序、格式都是系统规定的。
- 按照模板的列名(如:typeid, title, writer, source, litpic, keywords, description, body)填写你的文章数据。
typeid:是栏目ID,不是栏目名称,你需要提前在后台【频道模型】->【栏目管理】中查好每个栏目对应的ID。title。body,这里可以直接粘贴HTML代码,也可以从Word复制(但格式可能会混乱)。
- 填写完毕后,另存为
.xls格式(旧版Excel)或.xlsx格式(新版Excel),确保文件名是英文或数字。
-
执行导入:
- 回到【Excel导入数据】页面。
- 点击【浏览】,选择你刚刚保存好的Excel文件。
- 点击【开始导入】。
- 系统会自动处理,完成后会提示导入成功或失败的数量。
使用第三方批量导入插件(推荐)
当官方功能无法满足需求时,第三方插件是最佳选择,这些插件通常功能更强大,支持自定义字段、图片自动处理等。
优点:

(图片来源网络,侵删)
- 功能强大,支持自定义字段导入。
- 通常支持图片、附件的自动上传和替换。
- 支持多种数据源格式(CSV, TXT, XML等)。
- 效率高,适合大批量数据导入。
缺点:
- 需要从第三方网站下载,存在一定的安全风险(可能包含后门),务必选择信誉好的网站下载。
- 部分插件可能需要付费。
- 可能存在与当前DedeCMS版本的兼容性问题。
知名的插件推荐:
-
DedeCMS批量导入文章专业版:
- 这是一款非常经典和流传广泛的插件,功能相对完善,你可以在一些DedeCMS资源论坛(如织梦吧、源码爱好者等)搜索到。
- 功能:支持Excel/CSV导入,支持自定义字段,支持图片本地化,支持栏目自动创建等。
- 使用:下载后,按照说明上传到服务器指定目录,然后在后台插件管理中启用,按照向导操作即可。
-
火车头采集器 + 发布模块:
- 这不是传统意义上的“插件”,而是一个“采集+发布”的解决方案,但它是处理批量数据导入的终极利器。
- 原理:先用火车头采集器从任何网站(包括其他CMS网站、论坛、电商等)批量抓取你想要的文章内容,并将其保存为标准化的数据(如TXT, Excel, Access数据库),配置DedeCMS的发布接口,让火车头自动将采集到的内容发布到你的DedeCMS网站。
- 优点:
- 自动化程度极高:设置好规则后,可以定时自动采集和发布。
- 数据源极其广泛:几乎可以从任何网页抓取数据。
- 处理能力强:可以自动处理图片下载、内容过滤、关键词提取等复杂任务。
- 缺点:
- 学习曲线较陡,需要花时间学习火车头的使用方法。
- 属于第三方软件,需要单独购买和配置。
使用PHP脚本直接导入(高级用户)
如果你懂一些PHP和MySQL,或者能找到靠谱的脚本,这是最灵活、最高效的方法。
优点:
- 极致的灵活性和效率:可以完全控制导入的每一个细节。
- 无需插件,减少系统负担和潜在风险。
- 可以实现非常复杂的逻辑,比如根据文章内容自动生成缩略图、自动提取关键词等。
缺点:
- 技术门槛高:需要具备PHP编程和MySQL数据库操作知识。
- 风险高:如果脚本有bug,可能导致数据错乱甚至网站崩溃。操作前务必备份数据库!
基本思路:
- 准备数据源:将你的文章数据整理成结构化的数组、JSON或CSV格式。
- 编写PHP脚本:
- 连接DedeCMS数据库。
- 遍历你的数据源。
- 对于每一篇文章,构造符合
dede_archives和dede_addonarticle表结构的数据数组。 - 使用
INSERT INTO ...SQL语句将数据插入数据库。 - 关键点:
dede_archives表中的typeid(栏目ID)、arcrank(审核状态)、senddate(发布时间)等字段需要正确设置。dede_addonarticle表中的aid必须与dede_archives表中刚插入记录的ID对应(通常使用mysql_insert_id()函数获取)。
- 执行脚本:在服务器上运行这个PHP脚本,完成导入。
示例代码片段(极简版,仅作概念参考):
<?php
// 1. 配置数据库连接
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'password';
$dbname = 'dedecms';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if (!$conn) {
die('数据库连接失败: ' . mysqli_error($conn));
}
mysqli_query($conn, "SET NAMES utf8");
// 2. 模拟一篇文章数据
$article_data = [
'typeid' => 1, // 栏目ID
'arcrank' => -1, // -1表示审核通过 => '我的第一篇批量导入文章',
'writer' => 'admin',
'source' => '原创',
'pubdate' => time(),
'senddate' => time(),
'body' => '<p>这是文章的HTML内容。</p>'
];
// 3. 插入主表 dede_archives
$sql_archives = "INSERT INTO `dede_archives` (typeid, arcrank, title, writer, source, pubdate, senddate)
VALUES ('{$article_data['typeid']}', '{$article_data['arcrank']}', '{$article_data['title']}', '{$article_data['writer']}', '{$article_data['source']}', '{$article_data['pubdate']}', '{$article_data['senddate']}')";
mysqli_query($conn, $sql_archives);
// 4. 获取新插入文章的ID
$aid = mysqli_insert_id($conn);
// 5. 插入附加表 dede_addonarticle
// 注意:如果你的附加表名不是 addonarticle,需要修改
$sql_addon = "INSERT INTO `dede_addonarticle` (aid, body) VALUES ('{$aid}', '{$article_data['body']}')";
mysqli_query($conn, $sql_addon);
echo "文章导入成功,ID: " . $aid;
mysqli_close($conn);
?>
警告:以上代码仅为演示,直接使用有SQL注入风险,请务必做好数据过滤和转义。
总结与建议
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 官方Excel导入 | 安全、简单、无需插件 | 功能少、不支持自定义字段、效率低 | 少量文章、临时应急、新手用户 |
| 第三方插件 | 功能强大、支持自定义字段、效率较高 | 存在安全风险、可能收费、兼容性问题 | 有一定批量导入需求、需要处理自定义字段 |
| 火车头采集发布 | 自动化、数据源广、处理能力强 | 学习成本高、需额外软件 | 需要从其他网站大量抓取内容、追求自动化运营 |
| PHP脚本导入 | 极致灵活、效率最高、无插件依赖 | 技术门槛高、风险极高 | 专业开发者、有特殊导入逻辑、追求极致性能 |
给您的建议:
- 新手或少量导入:直接使用官方Excel导入功能,最安全。
- 有一定规模且需要自定义字段:寻找信誉好的第三方插件,这是性价比最高的选择。
- 网站运营者/需要持续更新:强烈建议学习使用火车头采集器,一旦配置好,能为你节省大量时间。
- 开发者或有特殊需求:可以考虑PHP脚本,但请务必谨慎操作,并先备份数据库。
在下载任何第三方插件或脚本前,请务必备份您的网站和数据库,以防万一。
