在.NET开发中,高效下载Word文件是一个常见的需求。本文将介绍如何使用Aspose.Words和IronWord这两个强大的库来实现这一功能。这两个库都支持.NET 8,并且可以在Linux、macOS和Windows上运行,使得在不同平台上处理Word文档变得简单。
1. Aspose.Words:功能强大的Word处理器
Aspose.Words是一个商业库,它提供了广泛的功能来创建、编辑和转换Word文档。它支持DOC、DOCX、RTF等多种格式,并且提供了丰富的API来处理文档内容。
安装Aspose.Words
首先,你需要通过NuGet安装Aspose.Words库:
shell
dotnet add package Aspose.Words
创建和下载Word文档
以下是一个使用Aspose.Words在ASP.NET Core API中生成和下载Word文档的示例:
using Aspose.Words;
using Microsoft.AspNetCore.Mvc;
using System.IO;
namespace WordDownloadApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class WordFileController : ControllerBase
{
[HttpGet("download")]
public IActionResult DownloadWordFile()
{
// 创建一个新的文档
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// 添加内容
builder.Writeln("这是文章的标题");
builder.Writeln("这是第一个段落内容。");
// 将文档保存到内存流
using (MemoryStream memStream = new MemoryStream())
{
doc.Save(memStream, SaveFormat.Docx);
byte[] byteArray = memStream.ToArray();
string fileName = "sample_document.docx";
string mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
// 返回文件内容结果
return new FileContentResult(byteArray, mimeType)
{
FileDownloadName = fileName
};
}
}
}
}
这段代码创建了一个新的Word文档,并添加了一些基本的内容。然后,它将文档保存到内存流中,并将其作为HTTP响应返回给客户端,实现文件的下载。
2. IronWord:跨平台的Word文档处理库
IronWord是另一个跨平台的C# Word DOCx库,它允许开发者在不依赖Office Interop的情况下创建和编辑Word文档。
安装IronWord
你可以通过NuGet安装IronWord:
shell
dotnet add package IronWord
使用IronWord创建和下载Word文档
以下是一个使用IronWord创建和下载Word文档的示例:
using IronWord;
using Microsoft.AspNetCore.Mvc;
using System.IO;
namespace IronWordController
{
[Route("api/[controller]")]
[ApiController]
public class IronWordController : ControllerBase
{
[HttpGet("download")]
public IActionResult DownloadDocument()
{
var document = new IronDocument();
document.AddParagraph("这是标题");
document.AddParagraph("这是正文内容。");
using (var stream = new MemoryStream())
{
document.SaveAs(stream, IronDocumentFormat.Docx);
stream.Position = 0;
return File(stream, "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "ironword_document.docx");
}
}
}
}
这段代码使用IronWord创建了一个Word文档,并添加了标题和正文内容。然后,它将文档保存到内存流中,并作为HTTP响应返回给客户端。
结论
Aspose.Words和IronWord都是.NET开发中处理Word文档的强大工具。它们支持跨平台运行,使得在不同操作系统上开发和部署Word处理应用变得简单。通过上述示例代码,你可以快速实现Word文档的生成和下载功能,提高开发效率。
往期精品推荐: