You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用.NET Core将DOCX格式文件转换为DOCM格式?

如何将DOCX格式转换为DOCM格式(.NET Core实现)

手动转换方法

如果不需要编程实现,直接通过Word客户端操作即可:

  • 打开目标DOCX文档
  • 点击「文件」>「另存为」,选择保存类型为「启用宏的Word文档(*.docm)」
  • 指定保存路径后完成转换

.NET Core编程实现

要在.NET Core中实现DOCX到DOCM的转换,推荐使用Open XML SDK,这是微软官方的开源库,用于处理Office Open XML格式文件。

步骤1:安装依赖包

首先安装DocumentFormat.OpenXml NuGet包,使用.NET CLI命令:

dotnet add package DocumentFormat.OpenXml

步骤2:转换代码实现

以下是完整的C#代码示例,支持将无宏的DOCX转换为可启用宏的DOCM格式(即使没有宏,也能生成合法的DOCM文件):

using System.IO;
using DocumentFormat.OpenXml.Packaging;

public static class DocxConverter
{
    public static void ConvertToDocm(string sourceDocxPath, string targetDocmPath)
    {
        // 复制原DOCX文件到目标路径,避免破坏原文件
        File.Copy(sourceDocxPath, targetDocmPath, overwrite: true);

        // 以可写模式打开目标文档包
        using (var doc = WordprocessingDocument.Open(targetDocmPath, true))
        {
            // 将文档类型切换为宏启用格式,自动更新ContentType
            doc.ChangeDocumentType(WordprocessingDocumentType.MacroEnabledDocument);

            // 检查是否存在VBA项目部件,不存在则添加空部件(DOCM格式要求必须包含该部件)
            if (doc.MainDocumentPart.VbaProjectPart == null)
            {
                var vbaPart = doc.MainDocumentPart.AddNewPart<VbaProjectPart>();
                // 写入空的VBA项目数据(如果需要添加实际宏,替换为对应的vbaProject.bin二进制流)
                using (var emptyStream = new MemoryStream())
                {
                    vbaPart.FeedData(emptyStream);
                }
            }
        }
    }
}

代码说明

  • 文件复制:先复制原文件再修改,避免操作过程中损坏原DOCX文件
  • 文档类型切换:ChangeDocumentType方法会自动更新文档的Content Type为application/vnd.ms-word.document.macroEnabled.12,这是DOCM格式的标准类型
  • VBA部件添加:DOCM格式要求必须包含vbaProject.bin部件,即使没有宏也需要添加空的部件,否则Word会判定文件损坏。如果需要添加实际宏,可以将现有DOCM文件中的vbaProject.bin内容读取后写入该部件

注意事项

  • 如果需要添加自定义宏,需提前准备好包含宏的vbaProject.bin二进制数据,替换代码中的空流
  • 确保程序对目标路径有写入权限
  • 转换过程会保留原DOCX中的所有内容(文本、格式、图片等),仅修改文件格式以支持宏

内容的提问来源于stack exchange,提问作者omar wasfi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:48:17