Contribute to this guide

指南从 Microsoft Office 粘贴内容

从 Office 粘贴功能允许您从 Microsoft Word 和 Microsoft Excel 粘贴内容并保留其原始结构和格式。 这是基本的开源从 Office 粘贴功能。 您还可以尝试更高级的付费增强型从 Office 粘贴功能。

# 演示

使用这些示例文档测试从 Microsoft Office Word 和 Excel 粘贴

要测试从 Office 粘贴,请下载示例文档并在 Microsoft Office 应用程序中打开它们。 然后,复制内容并将其粘贴到下面的编辑器中。

此演示展示了一组有限的功能。 访问功能丰富的编辑器示例以查看更多实际操作。

# 增强型从 Office 粘贴

请参阅增强型从 Office 粘贴指南,以全面比较基本版和高级版支持的样式和格式。

# 其他功能信息

从 Office 粘贴插件仅保留 CKEditor 5 设置中包含的内容格式和结构。 这意味着您可能需要添加缺少的功能,例如字体颜色或文本对齐。 在下面的自动内容过滤部分中阅读更多信息。

借助从 Office 粘贴功能,您可以将 Microsoft Word 文档复制并粘贴到 CKEditor 5 中,并保持基本文本样式、标题级别、链接、列表、表格和图片。

启用插件后,它会自动检测 Microsoft Word 内容,并将它的结构和格式转换为干净的 HTML,然后由编辑器将其转换为语义化内容。

PasteFromOffice插件还允许您从 Google Docs 粘贴内容。 查看从 Google Docs 粘贴内容指南以了解更多信息。

# 支持其他 Office 应用程序

在当前阶段,@ckeditor/ckeditor5-paste-from-office@ckeditor/ckeditor5-paste-from-office-enhanced包的重点是支持来自 Microsoft Word、Microsoft Excel 和Google Docs的内容。 但是,这并不意味着不支持从其他类似应用程序(例如 Microsoft PowerPoint)粘贴。

默认情况下,CKEditor 5 将支持从这些应用程序粘贴富文本内容,但是,一些样式和格式可能会丢失,具体取决于源应用程序。 此外,还可能出现其他细微的错误。

您可以在此票证中找到有关与其他应用程序的兼容性的更多信息。

如果您认为任何应用程序的支持需要改进,请在以下问题中添加 👍 和评论

随时为其他类似应用程序打开新的功能请求

# 自动内容过滤

使用 CKEditor 5,您无需担心粘贴来自 Microsoft Word(或任何其他可能来源)的混乱内容。借助 CKEditor 5 的 自定义数据模型,只有由加载的富文本编辑器功能专门处理的内容才会被保留。

这意味着,如果您没有启用例如 字体系列和字号 功能,当您从 Microsoft Word 和其他来源(如其他网站)粘贴内容时,此类格式将被自动去除。

# 安装

⚠️ 新的导入路径

版本 42.0.0 开始,我们更改了导入路径的格式。本指南使用新的、更短的格式。如果您使用的是旧版本的 CKEditor 5,请参考 旧版设置中的包 指南。

安装编辑器 后,将该功能添加到您的插件列表和工具栏配置中

import { ClassicEditor, PasteFromOffice } from 'ckeditor5';

ClassicEditor
    .create( document.querySelector( '#editor' ), {
        plugins: [ PasteFromOffice, /* ... */ ]
    } )
    .then( /* ... */ )
    .catch( /* ... */ );

# 已知问题

如果粘贴的文档包含图像和格式化文本(如标题),则图像有时无法正确粘贴。不幸的是,对于某些操作系统、浏览器和 Word 版本,在这种情况下,剪贴板中没有图像数据。

建议尝试将图像与文本主体分开粘贴,如果出现此错误。

如果图像在 Word 内容中由 VML 语法表示(如:<v:shape><v:imagedata src="...."/></v:shape>),它也不会被粘贴,因为 CKEditor 5 不支持这种表示法。如果您想看到此功能实现,请在 此 GitHub 问题 中添加 👍 反应。

CKEditor 5 支持更广泛的粘贴功能,包括

# 贡献

该功能的源代码可在 GitHub 上获得,网址为 https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-paste-from-office