Das Zusammenführen mehrerer MS Word Dokumente kann in verschiedenen Szenarien nützlich sein. Beispielsweise kann es verwendet werden, um einen ähnlichen Dokumententyp in einer einzigen Datei zu speichern, mehrere Dokumente vor der Freigabe zu kombinieren und so weiter. Es sind verschiedene Online-Tools verfügbar, mit denen Sie MS Word Dokumente ganz einfach zusammenführen können. Was aber, wenn Sie diese Funktion in Ihrer eigenen Anwendung hinzufügen möchten? Damit Sie dies erreichen, zeige ich Ihnen, wie Sie MS Word Dokumente (DOC/DOCX) mithilfe von C# in Ihren ASP.NET Webanwendungen zusammenführen. Diese Anwendung zum Zusammenführen von Word Dokumenten verfügt über die folgenden Funktionen:
- Führen Sie MS Word Dokumente zu einem einzigen Dokument zusammen
- Laden Sie zusammengeführte Word Dokumente im DOCX Format herunter
- Laden Sie zusammengeführte Word Dokumente im PDF Format herunter
.NET API zum Zusammenführen von MS Word Dokumenten in ASP.NET
Aspose.Words for .NET ist eine funktionsreiche Textverarbeitungs-API, mit der Sie MS Word Dokumente mühelos verarbeiten können. Es ermöglicht Ihnen auch, mehrere Word Dokumente in einem einzigen Dokument innerhalb von ASP.NET oder einer beliebigen .NET/.NET Core Anwendung zusammenzuführen. Aspose.Words for .NET kann mit NuGet installiert und als DLL Datei heruntergeladen werden.
PM> install-package Aspose.Words
Führen Sie MS Word Dokumente in ASP.NET zusammen
Im Folgenden sind die Schritte zum Erstellen einer ASP.NET Anwendung aufgeführt, mit der Sie zwei oder mehr Word Dokumente (DOC/DOCX) zusammenführen können, ohne MS Office/Word zu verwenden.
- Erstellen Sie eine ASP.NET Core Webanwendung in Visual Studio.
- Wählen Sie die Webanwendung (Model-View-Controller) aus der Vorlagenliste aus.
- Installieren Sie Aspose.Words for .NET über den NuGet Paket Manager oder die Paket-Manager Konsole.
- Fügen Sie das folgende Skript in Ihre index.cshtml Datei ein.
@{
ViewData["Title"] = "Merge MS Word Documents in ASP.NET";
}
<div class="row">
<div class="col-md-12" align="center">
<h2 class="text-info">Merge Two or More Word DOC/DOCX Documents</h2>
<p class="text-info">Merge MS Word documents and get the results in DOCX or PDF format.</p>
</div>
</div>
<br />
<form asp-controller="Home" asp-action="UploadFiles" method="post" class="form-inline dropzone" enctype="multipart/form-data">
<div class="row">
<div class="col-md-12" align="center">
<div>
<input type="file" id="input-id" name="files" multiple accept=".doc, .docx" class="form-control file" data-preview-file-type="text" />
</div>
</div>
</div>
<hr />
<div class="row">
<div class="col-md-12" align="center">
<div class="input-group-lg">
<strong>Save As</strong>
<select name="outputFormat" class="form-control">
<option value="DOCX">DOCX</option>
<option value="PDF">PDF</option>
</select>
<button type="submit" class="form-control btn btn-success">Merge and Download</button>
</div>
</div>
</div>
</form>
<script>
// Drag-and-Drop-Plugin-Optionen
$("#input-id").fileinput({ 'mainClass': "input-group-lg", 'showBrowse': true, 'showUpload': false, 'previewFileType': 'any', 'showClose': false, 'maxFileCount': 5, });
</script>
- Fügen Sie den folgenden Code in Ihre HomeController.cs Klasse ein.
public FileResult UploadFiles(List<IFormFile> files, string outputFormat)
{
if (files.Count() <= 1)
{
// eine Nachricht anzeigen
return null;
}
string fileName = "merged-document.docx";
string path = "wwwroot/uploads";
List<Document> documents = new List<Document>();
// Daten hochladen
foreach (IFormFile file in files)
{
string filePath = Path.Combine(path, file.FileName);
// Daten abspeichern
using (var stream = new FileStream(filePath, FileMode.Create))
{
file.CopyTo(stream);
}
// Fügen Sie alle Dokumente zur Liste hinzu
documents.Add(new Document(filePath));
}
// Laden Sie das erste Word Dokument
Document doc1 = documents[0];
for (int i = 1; i < documents.Count(); i++)
{
// Word Dokumente zusammenführen
doc1.AppendDocument(documents[i], ImportFormatMode.KeepSourceFormatting);
}
var outputStream = new MemoryStream();
if (outputFormat == "DOCX")
{
doc1.Save(outputStream, SaveFormat.Docx);
outputStream.Position = 0;
// Generierte Word Datei zurückgeben
return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Rtf, fileName);
}
else
{
fileName = "merged-document.pdf";
doc1.Save(outputStream, SaveFormat.Pdf);
outputStream.Position = 0;
// Generierte PDF Datei zurückgeben
return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Pdf, fileName);
}
}
- Fügen Sie die folgenden JS und CSS Dateien des Drag-and-Drop-Plugins in das Head-Tag der Datei \layout.cshtml ein.
<!--drag and drop file plugin-->
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.9/css/fileinput.min.css" media="all" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-3.3.1.min.js" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.9/js/fileinput.min.js"></script>
<!--end of drag and drop-->
- Erstellen Sie die Anwendung und führen Sie sie in Ihrem Browser aus.
Download
Laden Sie den Quellcode der Anwendung ASP.NET Word Document Merger von hier herunter.
Probieren Sie Aspose.Words for .NET kostenlos aus
Holen Sie sich Ihre temporäre Lizenz (eine vollständige Lizenz für 30 Tage), um Aspose.Words for .NET kostenlos zu testen.