实际工作中,往往有这样的需求,需要导出word,还有各种各样的样式,于是有了word模板导出。

实现以下几个需求:

1、表单导出

2、表格导出

3、表单表格混合导出

4、实际用例测试

解决方案:

实现是基于NET Core 2.1 ,搜索了各个开源项目最终基于DocX这个开源库,当初实现时发现DocX作者并没有发布Core的版本,最后在Nuget搜索到DocXCore这个包,但是没有GitHub搜索到这个库。

上面还遇到一个坑爹的问题,系统在win运行没问题,一部署到centos导出就挂了,根据错误研究发现里面居然要获取当前登录的用户信息,win系统没有问题,centos报错,于是去掉获取系统用户这块,居然没有源码。

一怒之下,反编译了DocXCore包,移除了获取登录系统代码,最终win和centos都导出正常。

奉上源码地址:https://github.com/deeround/DocXCore

1、表单导出

模板

 

代码

复制代码
 1     public class FormTest  2     {  3         public static void Test()  4         {  5             Console.WriteLine($"表单");  6             Stopwatch sw = new Stopwatch();  7             Dictionary<string, object> data = new Dictionary<string, object>()  8             {  9                 { "xmmc","测试姓名测试姓名111"}, 10                 { "sqje","1417.4"}, 11                 { "xmdw","博客园Deeround"}, 12                 { "glfs","自行管理方式"}, 13                 { "xmgk","博客园Deeround来函申请办理 应急抢险治理工程项目竣工结(决)算,该项目已完工并通过项目初步验收,现拟按程序采取政府购买服务方式开展评审"}, 14                 { "psyj",""}, 15                 { "gzyq", @"(一)对建设程序进行评审,包括可行性研究报告、初步设计等批准文件的程序性审查。 16 (二)对建设规模、建设标准、可研执行情况等进行评审。 17 (三)对工程投资进行评审,包括工程计量、定额选用、材料价格及费用标准等的评审。 18 (四)对设施设备资进行评审,包括设施设备型号、规格、数量及价格的评审。 19 "}, 20                 { "wcsx