DotNetCore.NPOI和.Net Core 2 MVC Web App

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DotNetCore.NPOI和.Net Core 2 MVC Web App相关的知识,希望对你有一定的参考价值。

我在我的.NET Core 2 MVC Web应用程序中使用DotNetCore.NPOI V1.0.2。我一直在研究使用页眉和页脚创建.docx文档的说明或示例,但没有任何成功。有谁知道如何使用页面编号如Page 1 / x格式创建两行页眉和页脚?

答案

This unit test在给定现有文档的情况下创建标题。我尝试了它,它的工作原理。

但是,我没有找到一种方法来创建一个新的头文件而不首先在源docx中读取。从new XWPFDocument()创建标头会产生空引用异常。

我的用例的解决方案是使用空的template.docx播种该东西,根据需要填充它,并将其保存到其他内容中。基于单元测试:

class Program
{
    static void Main(string[] args)
    {
        var here = AppContext.BaseDirectory;
        using (var input = new FileStream(Path.Combine(here, "template.docx"), FileMode.Open))
        {
            var doc = new XWPFDocument(input);

            var rawParagraph = new CT_P();
            var rawRun = rawParagraph.AddNewR();
            var rawText = rawRun.AddNewT();
            rawText.Value = "Paragraph in header";

            var headerParagraph = new XWPFParagraph(rawParagraph, doc);

            var paragraphs = new XWPFParagraph[] { headerParagraph };
            var header = doc.GetHeaderFooterPolicy().CreateHeader(XWPFHeaderFooterPolicy.DEFAULT, paragraphs);

            // etc for footer

            using (var fs = new FileStream(Path.Combine(here, "output.docx"), FileMode.Create, FileAccess.Write))
            {
                doc.Write(fs);
            }
        }
    }
}

以上是关于DotNetCore.NPOI和.Net Core 2 MVC Web App的主要内容,如果未能解决你的问题,请参考以下文章

在 alpine 中使用 NPOI

.NET Core 1.0ASP.NET Core 1.0和EF Core 1.0简介

.net core 3.0和.net5有什么区别

细说.net core Startup

Asp.net core 配置文件

NET Core 拓展方法和中间件集合(支持NET Core2.0+)