ASP.NET MVC это платформа веб–приложений, разработанная Microsoft и реализующая шаблон model–view-controller (MVC).
Mail merge это процесс объединения данных из источника данных в документ шаблона Word для создания таких отчетов, каксчет-фактура, платежная ведомость, письмо, и т.д.
В этом примере кода мы загрузим Шаблон Word задокументируйте и выполните процесс слияния по почте. Результат будет сохранен в требуемом формате (DOCX, HTML, RTF, TXT или PDF).
Полный пример кода для объедините документы Word по почте в ASP.NET MVC можно загрузить с сайта сгенерировать отчет в ASP.NET MVC.zip
Полный код
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using DocumentCoreMvc.Models;
using SautinSoft.Document;
namespace DocumentCoreMvc.Controllers
{
public class HomeController : Controller
{
private readonly IWebHostEnvironment environment;
public HomeController(IWebHostEnvironment environment)
{
this.environment = environment;
}
public IActionResult Index()
{
return View(new InvoiceModel());
}
public FileStreamResult Download(InvoiceModel model)
{
// Load template document.
var path = Path.Combine(this.environment.ContentRootPath, "InvoiceWithFields.docx");
var document = DocumentCore.Load(path);
// Execute mail merge process.
document.MailMerge.Execute(model);
// Save document in specified file format.
var stream = new MemoryStream();
document.Save(stream, model.Options);
// Set the stream position to the beginning of the file.
//fileStream.Seek(0, SeekOrigin.Begin);
stream.Seek(0, 0);
// Download file.
return File(stream, model.Options.ContentType, $"OutputFromView.{model.Format.ToLower()}");
}
// [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel() { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
namespace DocumentCoreMvc.Models
{
public class InvoiceModel
{
public int Number { get; set; } = 1;
public DateTime Date { get; set; } = DateTime.Today;
public string Company { get; set; } = "Springfield Nuclear Power Plant (in Sector 7-G)";
public string Address { get; set; } = "742 Evergreen Terrace, Springfield, United States";
public string Name { get; set; } = "Homer Simpson";
public string Format { get; set; } = "DOCX";
public SaveOptions Options => this.FormatMappingDictionary[this.Format];
public IDictionary<string, SaveOptions> FormatMappingDictionary => new Dictionary<string, SaveOptions>()
{
["DOCX"] = new DocxSaveOptions(),
["HTML"] = new HtmlFixedSaveOptions { EmbedImages = true },
["RTF"] = new RtfSaveOptions(),
["TXT"] = new TxtSaveOptions(),
["PDF"] = new PdfSaveOptions()
};
}
}
Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу [email protected] или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже: