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#.
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.
- Välj webbapplikationen (Model-View-Controller) från malllistan.
- Installera Aspose.Words för .NET från NuGet Package Manager eller Package Manager Console.
- 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 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.