Om du arbetar med ett gäng Word-dokument kan du stöta på ett scenario där du behöver slå samman flera dokument till ett enda programmässigt. För att uppnå det ger den här artikeln dig en komplett guide om hur du slår samman MS Word-dokument i en ASP.NET-applikation med C#.

Slå samman Word-dokument ASP.NET

Att slå samman flera MS Word-dokument kan vara användbart för att hålla dokument av samma typ i en enda fil, kombinera flera dokument innan de delar, och så vidare. För att få dig att uppnå detta kommer vi att visa dig hur du skapar en ASP.NET-applikation för att slå samman MS Word-dokument (DOC/DOCX). Denna Word Document Merger-applikation kommer att ha följande funktioner:

  • Slå samman MS Word-dokument till ett enda dokument
  • Ladda ner sammanslagna Word-dokument i DOCX-format
  • Ladda ner sammanslagna Word-dokument i PDF-format

C# Library för att slå samman MS Word-dokument i ASP.NET

Aspose.Words for .NET är ett funktionsrikt ordbehandlingsbibliotek som låter dig bearbeta MS Word-dokument med lätthet. Det låter dig också slå samman flera Word-dokument till ett enda dokument inom ASP.NET eller någon .NET/.NET Core-applikation. Aspose.Words för .NET kan installeras med NuGet samt laddas ner som en DLL-fil.

PM> install-package Aspose.Words

Slå samman MS Word-dokument i ASP.NET

Följande är stegen för att skapa ett ASP.NET-program som låter dig slå samman två eller flera Word-dokument (DOC/DOCX) utan att använda MS Office/Word.

  • Skapa en ASP.NET Core Web Application i Visual Studio.
Skapa ASP.NET Core Web Application
  • Välj webbapplikationen (Model-View-Controller) från malllistan.
Välj MVC Application
  • Installera Aspose.Words för .NET från NuGet Package Manager eller Package Manager Console.
.NET API för Word Comparison
  • Infoga följande skript i din index.cshtml-fil.
@{
    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>
    // Dra och släpp plugin-alternativ
    $("#input-id").fileinput({ 'mainClass': "input-group-lg", 'showBrowse': true, 'showUpload': false, 'previewFileType': 'any', 'showClose': false, 'maxFileCount': 5, });
</script>
  • Infoga följande kod i din HomeController.cs-klass.
public FileResult UploadFiles(List<IFormFile> files, string outputFormat)
{
	if (files.Count() <= 1)
	{
		// visa något meddelande
		return null;
	}
	string fileName = "merged-document.docx";
	string path = "wwwroot/uploads";
	List<Document> documents = new List<Document>();
	// ladda upp filer 
	foreach (IFormFile file in files)
	{
		string filePath = Path.Combine(path, file.FileName);
		// Spara filer
		using (var stream = new FileStream(filePath, FileMode.Create))
		{
			file.CopyTo(stream);
		}
		// Lägg till alla dokument i listan
		documents.Add(new Document(filePath));
	}
	// Ladda det första Word-dokumentet
	Document doc1 = documents[0];
	for (int i = 1; i < documents.Count(); i++)
	{
    // Slå samman Word-dokument
		doc1.AppendDocument(documents[i], ImportFormatMode.KeepSourceFormatting);
	}           

	var outputStream = new MemoryStream(); 
	if (outputFormat == "DOCX")
	{
		doc1.Save(outputStream, SaveFormat.Docx);
		outputStream.Position = 0;
		// Returnera genererad Word-fil
		return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Rtf, fileName);
	}
	else
	{
		fileName = "merged-document.pdf";
		doc1.Save(outputStream, SaveFormat.Pdf);
		outputStream.Position = 0;
		// Returnera genererad PDF-fil
		return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Pdf, fileName);
	}
}
  • Inkludera följande JS- och CSS-filer med dra och släpp-plugin i head-taggen för filen layout.cshtml.
<!--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-->
  • Bygg applikationen och kör den i din webbläsare.
ASP.NET Word Document Merger

ASP.NET Word Document Merging Application - Källkod

Ladda ner källkoden för ASP.NET Word Document Merger-applikation från här.

C# Word Processing Library - Skaffa en gratis licens

Skaffa din gratis tillfälliga licens och använd Aspose.Words för .NET gratis.

Relaterad artikel