.NET高效下载word文件

在.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

go 复制代码
dotnet add package Aspose.Words
创建和下载Word文档

以下是一个使用Aspose.Words在ASP.NET Core API中生成和下载Word文档的示例:

复制代码
go 复制代码
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

go 复制代码
dotnet add package IronWord
使用IronWord创建和下载Word文档

以下是一个使用IronWord创建和下载Word文档的示例:

复制代码
go 复制代码
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文档的生成和下载功能,提高开发效率。

往期精品推荐:

在国内默默无闻的.NET,在国外火的超乎想象?

C#的膨胀之路:创新还是灭亡

介绍.NET 6款好看的winform开源UI库

介绍一款最受欢迎的.NET 开源UI库

WPF第三方开源UI框架:打造独特体验的魔法师

WPF与Winform,你的选择是?

WinForm的前世今生

.NET成年了,然后呢?------编程界的逆袭传奇

相关推荐
iiiiyu8 分钟前
常用API(SimpleDateFormat类 & Calendar类 & JDK8日期 时间 日期时间 & JDK8日期(时区) )
java·大数据·开发语言·数据结构·编程语言
故事和你9110 分钟前
洛谷-数据结构1-4-图的基本应用2
开发语言·数据结构·算法·深度优先·动态规划·图论
qq_120840937119 分钟前
Three.js 工程向:Clock、deltaTime 与固定步长主循环
开发语言·javascript·ecmascript
小菜同学爱学习21 分钟前
夯实基础!MySQL数据类型进阶、约束详解与报错排查
开发语言·数据库·sql·mysql
吴可可12325 分钟前
C#合并首尾相连多段线实战
算法·c#
源码站~32 分钟前
基于机器学习的社交媒体舆情分析系统
开发语言·python
jieyucx42 分钟前
Go 语言零基础入门:编写第一个 Hello World 程序
开发语言·后端·golang
沐知全栈开发1 小时前
Rust 数据类型
开发语言
jieyucx1 小时前
Go 语言基础语法:变量、常量与数据类型详解
开发语言·后端·golang
光影少年1 小时前
Python+LangGraph学习路线及发展前景
开发语言·人工智能·python·学习