繁体   English   中英

创建一个 DocX 并保存到客户端机器 c#

[英]Create a DocX and save to client machine c#

我在 MVC 项目中使用来自: https://github.com/xceedsoftware/DocX/blob/master/Xceed.Document.NET/Src/Document.cs的库。

该功能现在位于我的服务器上;

 public void Build(Results umbracoFormValues)
    {
        var ms = new MemoryStream();
        using (var document = DocX.Create(ms))
        {
            var heading = new Heading();
            heading.Branding(document);
            var sections = umbracoFormValues.SectionResults;
            foreach (var section in sections)
            {
                heading.Render(document, section);
                ConstructFieldTypes(document, section);
                new Footer().Render(document);
            }
            ms.Position = 0;
            document.SaveAs(new CreateNew().DocumentFileName(umbracoFormValues));
        }
    }

然后如何获取新创建的文件并将其下载给用户/客户端?

提前谢谢了。

您可以更改构建方法以返回 stream:

public Stream Build(Results umbracoFormValues)
{
    var ms = new MemoryStream();
    //code omitted for simplicity
    return ms;
}

然后在你的行动中:

public async Task<IActionResult> MyAction(Results umbracoFormValues)
{
    var stream = Build(umbracoFormValues);

    var mimeType = "application/vnd.openxmlformats-officedocument.wordprocessing";
    var fileName = "myReport.docx";

    return File(stream, mimeType, fileName);
}

请记住,根据您使用的 dotnet 核心/框架,可能会有一些差异,因为您没有指定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM