Pasting content from Microsoft Office
Paste from Office features let you paste content from Microsoft Word and Microsoft Excel and preserve its original structure and formatting. This is the basic, open-source Paste from Office feature. You can also try the more advanced, premium paste from Office enhanced feature.
# Demo
Use these sample documents to test pasting from Microsoft Office Word and Excel:
To test pasting from Office, download the sample documents and open them in Microsoft Office applications. Then, copy the content and paste it into the editor below.
This demo presents a limited set of features. Visit the feature-rich editor example to see more in action.
# Paste from Office enhanced
Refer to the paste from Office enhanced guide for a full comparison of supported styles and formatting between the basic and premium versions.
# Additional feature information
The Paste from Office plugin only preserves content formatting and structures that are included in your CKEditor 5 setup. This means that you may need to add missing features such as font color or text alignment. Read more in the Automatic content filtering section below.
Thanks to the paste from Office feature, you can copy and paste Microsoft Word documents into CKEditor 5 and maintain basic text styling, heading levels, links, lists, tables, and images.
When the plugin is enabled, it automatically detects Microsoft Word content and transforms its structure and formatting to clean HTML which is then transformed into semantic content by the editor.
The PasteFromOffice
plugin also allows you to paste content from Google Docs. See the pasting content from Google Docs guide to learn more.
# Support for other office applications
At the current stage, the focus of @ckeditor/ckeditor5-paste-from-office
and @ckeditor/ckeditor5-paste-from-office-enhanced
packages is on supporting content that comes from Microsoft Word, Microsoft Excel, and Google Docs. However, it does not mean that pasting from other similar applications (such as Microsoft PowerPoint) is not supported.
By default, CKEditor 5 will support pasting rich-text content from these applications, however, some styles and formatting may be lost, depending on the source application. Also, other minor bugs may appear.
You can find more information regarding compatibility with other applications in this ticket.
If you think that support for any of the applications needs improvements, please add 👍 and comments in the following issues:
Feel free to open a new feature request for other similar applications, too!
# Automatic content filtering
With CKEditor 5 you do not need to worry about pasting messy content from Microsoft Word (or any other possible sources). Thanks to the CKEditor 5 custom data model, only content that is specifically handled by the loaded rich-text editor features will be preserved.
This means that if you did not enable, for instance, font family and font size features, this sort of formatting will be automatically stripped off when you paste content from Microsoft Word and other sources (like other websites).
# Installation
⚠️ New import paths
Starting with version 42.0.0, we changed the format of import paths. This guide uses the new, shorter format. Refer to the Packages in the legacy setup guide if you use an older version of CKEditor 5.
After installing the editor, add the feature to your plugin list and toolbar configuration:
import { ClassicEditor, PasteFromOffice } from 'ckeditor5';
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ PasteFromOffice, /* ... */ ]
} )
.then( /* ... */ )
.catch( /* ... */ );
# Known issues
If the pasted document contains both images and styled text (like headings), images are sometimes not pasted properly. Unfortunately, for some operating systems, browsers, and Word versions the image data is not available in the clipboard in this case.
It is advised to try and paste the image separately from the body of the text if this error occurs.
If the image is represented in the Word content by the VML syntax (like this one: <v:shape><v:imagedata src="...."/></v:shape>
), it will not be pasted either as this notation is not supported by CKEditor 5. If you’d like to see this feature implemented, add a 👍 reaction to this GitHub issue.
# Related features
CKEditor 5 supports a wider range of paste features, including:
- Paste from Office enhanced – Paste from Office enhanced is a premium version of the plugin that offers far greater capabilities.
- Paste from Google Docs – Paste content from Google Docs, maintaining the original formatting and structure.
- Paste plain text – Paste text without formatting that will inherit the style of the content it was pasted into.
- Import from Word – Convert Word files directly into HTML content. You can read more about the differences between the paste from Office and import from Word features in the dedicated comparison guide.
- Paste Markdown – Paste Markdown-formatted content straight into the editor.
# Contribute
The source code of the feature is available on GitHub at https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-paste-from-office.
Every day, we work hard to keep our documentation complete. Have you spotted outdated information? Is something missing? Please report it via our issue tracker.
With the release of version 42.0.0, we have rewritten much of our documentation to reflect the new import paths and features. We appreciate your feedback to help us ensure its accuracy and completeness.