How to create Word document in UWP?
Syncfusion Essential DocIO is a UWP Word library used to create, read, and edit Word documents programmatically without Microsoft Word or interop dependencies. Using this library, you can create a Word document in UWP.
Steps to create Word document programmatically in UWP:
- Create a new C# Blank App (Universal Windows) project.
- Install the Syncfusion.DocIO.UWP NuGet package as a reference to your UWP application from NuGet.org.
- Add a new button in the MainPage.xaml as shown below.
XAML
<Page x:Class="CreateWordSample.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:CreateWordSample" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Button x:Name="button" Content="Create Document" Click="OnButtonClicked" HorizontalAlignment="Center" VerticalAlignment="Center"/> </Grid> </Page>
- Include the following namespaces in the Mainpage.xaml.cs file.
C#
using Syncfusion.DocIO; using Syncfusion.DocIO.DLS; using Windows.Storage.Pickers; using Windows.Storage; using Windows.Storage.Streams;
- Include the below code snippet in the click event of the button in MainPage.xaml.cs, to create a Word document and save the Word document as a physical file and open the file for viewing.
C#
//Creates a new instance of WordDocument (Empty Word Document) using (WordDocument document = new WordDocument()) { //Adds a section and a paragraph to the document document.EnsureMinimal(); //Appends text to the last paragraph of the document document.LastParagraph.AppendText("Hello World"); MemoryStream stream = new MemoryStream(); //Saves the Word document to MemoryStream await document.SaveAsync(stream, FormatType.Docx); //Saves the stream as Word document file in local machine Save(stream, "Result.docx"); // Saves the Word document async void Save(MemoryStream streams, string filename) { streams.Position = 0; StorageFile stFile; if (!(Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))) { FileSavePicker savePicker = new FileSavePicker(); savePicker.DefaultFileExtension = ".docx"; savePicker.SuggestedFileName = filename; savePicker.FileTypeChoices.Add("Word Documents", new List<string>() { ".docx" }); stFile = await savePicker.PickSaveFileAsync(); } else { StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder; stFile = await local.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting); } if (stFile != null) { using (IRandomAccessStream zipStream = await stFile.OpenAsync(FileAccessMode.ReadWrite)) { // Write compressed data from memory to file using (Stream outstream = zipStream.AsStreamForWrite()) { byte[] buffer = streams.ToArray(); outstream.Write(buffer, 0, buffer.Length); outstream.Flush(); } } } // Launch the saved Word file await Windows.System.Launcher.LaunchFileAsync(stFile); } }
A complete working example to create Word document in UWP can be downloaded from Create-Word-file.zip.
By executing the program, you will get the Word document as follows.
Take a moment to peruse the documentation, where you can find basic Word document processing options along with features like mail merge, merge and split documents, find and replace text in the Word document and protect the Word documents with code examples.
Explore more about the rich set of Syncfusion Word Framework features.
An online example to generate or create Word document.
See Also:
Create Word document in Xamarin
Create Word document in Xamarin.Android
Create Word document in Windows Forms
Create Word document in ASP.NET Core
Create Word document in ASP.NET MVC
Starting with v16.2.0.x, if you reference Syncfusion assemblies from trial setup or from the NuGet feed, include a license key in your projects. Refer to link to learn about generating and registering Syncfusion license key in your application to use the components without trail message.