Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save fileformat-words-gists/efe7dfee71953a577e13988ed99e20f1 to your computer and use it in GitHub Desktop.
Save fileformat-words-gists/efe7dfee71953a577e13988ed99e20f1 to your computer and use it in GitHub Desktop.
Multiple Word Documents Concurrent Updating in C#
// Concurrently updating three documents using <a href="https://www.nuget.org/packages/FileFormat.Words">FileFormat.Words</a>
// Supported in v23.12.0
var task1 = System.Threading.Tasks.Task.Run(()
=> ManipulateDocument("doc1.docx", "doc1_Threaded.docx"));
var task2 = System.Threading.Tasks.Task.Run(()
=> ManipulateDocument("doc2.docx", "doc2_Threaded.docx"));
var task3 = System.Threading.Tasks.Task.Run(()
=> ManipulateDocument("doc3.docx", "doc3_Threaded.docx"));
// Wait for all tasks to complete
System.Threading.Tasks.Task.WaitAll(task1, task2, task3);
Console.WriteLine("All tasks completed.");
static void ManipulateDocument(string inputFileName, string outputFileName)
{
var doc = new FileFormat.Words.Document(inputFileName);
var paragraph = new FileFormat.Words.IElements.Paragraph();
paragraph.AddRun(new FileFormat.Words.IElements.Run
{
Text = $"This is the paragraph appended to {inputFileName}"
});
var body = new FileFormat.Words.Body(doc);
body.AppendChild(paragraph);
doc.Save(outputFileName);
Console.WriteLine($"Task completed for {inputFileName}");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment