Führen Sie Word Dokumente ASP.NET zusammen

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.
Erstellen Sie eine ASP.NET Core Webanwendung
  • Wählen Sie die Webanwendung (Model-View-Controller) aus der Vorlagenliste aus.
Wählen Sie MVC Anwendung aus
  • Installieren Sie Aspose.Words for .NET über den NuGet Paket Manager oder die Paket-Manager Konsole.
.NET API für den Wortvergleich
  • 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.
ASP.NET Word Dokumentenzusammenführung

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.

Verwandter Artikel