莫名其妙地有了这个需求,于是进行了一下实战。本文使用天气预报api自动生成Word格式的报表,使用VSTO相关技术,在VS2017+Word2016中测试通过,结果如图:

Word模板制作
图中大标题及文末日期为两个格式文本内容控件(RichTextContentControl),而后用{1}表示即将添加正文的部分。如图所示:
为了方便之后添加文字,将标题控件的标记(Tag)命名为TitleRTFControl,日期控件的标记(Tag)命名为DateRTFControl,将模板保存为Test.dotx。
在VS2017中新建WPF应用程序,添加对Microsoft.Office.Interop.Word和Microsoft.Office.Tools.Word的引用。并在MainWindow中添加按钮。
为方便起见,
using Word = Microsoft.Office.Interop.Word;
using Tools = Microsoft.Office.Tools.Word;
使用模板新建文档
Word.Application application = new Word.Application();//新建Word应用程序
application.Visible = true;//显示Word窗口,删除此句Word以后台方式运行
var document = application.Documents.Add(System.Environment.CurrentDirectory+"\\Test.dotx");//以模板新建文档
使用Tag寻找内容

本文介绍如何使用VSTO技术在WPF应用程序中自动生成Word格式的天气预报报表。通过VS2017+Word2016测试,详细步骤包括创建Word模板,设置内容控件,引用相关库,利用Tag找到内容控件并替换占位符,最终成功生成报表。

1679

被折叠的 条评论
为什么被折叠?



