首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C# 处理Word自动生成报告 三、设计模板

C# 处理Word自动生成报告 三、设计模板

作者头像
FlyLolo
发布2018-05-17 15:23:32
1.6K0
发布2018-05-17 15:23:32
举报
文章被收录于专栏:Core NetCore Net

既然是模板就少不了各种标记和配置. 这里主要用到了word的书签功能.

打开word按ctrl+shift+F5, 打开书签功能

如下图

如果所示, 可以选中word中的一个区域然后按ctrl+shift+F5, 对此部分添加一个书签

是否理解为这样是为这部分区域添加了指针? 根据图中的操作就可以明白了, 可以在对某些文字进行标识, 然后根据这个标识找到这部分进行操作.

第一篇文章小罗说了本次主要完成的内容, 下面说一下实现方式, 为了标识到各个书签的类型及一些关键配置,所以将书签的名字命名格式做了约定.

例如只是为了更新文字用的. 格式为 label_级别_名称

这里的loop是为了循环用, 这是报告中经常会 遇到的, 通过本例的目录就可以看出来

模板:

实际结果

这里的学期, 学生名字都是不固定的, 所以这里就定义了一下文档级别

文档最基本的为0级, 学期的循环为1级, 学期内姓名的循环为2级,依次类推.

因为存在循环,数据集也就会要求根据循环条件进行filter

所以loop的标签格式为 loop_级别_取Dataset中的第几张表(从1开始)_filter字段多个用XX隔开(此处不允许有下划线外其他特殊字符, 就用这个XX吧 )_loop名称

1. 更新指定位置的文字.  --  即如上图所示, 找到标签部分替换为数据源中的文字.

2. 支持表格.  -- 此部分原本想对表格添加书签,后来发现有个表格属性, 觉得写在这里更好一些

标题的格式同loop

说明项可选, 若需要合计行, 则需要标识, summary或缩写s: [合计]行是模板中表格的第几行   summaryfilter或缩写sf:数据集进一步filter到summary行的条件(因为一个表格只取一个Datatable,通过一个标识指定了哪些datarow是用来作为合计的)

3. 支持图表.

配置在图表标题,格式为:chart_级别_取Dataset中的第几张表(从1开始)_filter字段多个用XX隔开(此处不允许有下划线外其他特殊字符, 就用这个XX吧 )_chart名称_是否将Datatable的columnName作为第一行_从datatable第几列开始(列起始为1)_截止列

4. 支持区域内容循环生成. --  配置方式上文已说明, 程序会根据级别通过递归的方式处理.

5. 支持目录.   -- 无需标识, 模板中添加目录, 当内容处理完成之后, 动态更新目录即可.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-11-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档