C# 处理Word自动生成报告 三、设计模板
既然是模板就少不了各种标记和配置. 这里主要用到了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. 支持目录. -- 无需标识, 模板中添加目录, 当内容处理完成之后, 动态更新目录即可.
C# 处理Word自动生成报告 三、设计模板的更多相关文章
- C# 处理Word自动生成报告 四、程序处理
C# 处理Word自动生成报告 一.概述 C# 处理Word自动生成报告 二.数据源例子 C# 处理Word自动生成报告 三.设计模板 C# 处理Word自动生成报告 四.程序处理 现在说一下程序处理 ...
- C# 处理Word自动生成报告 一、概述
经常遇到这样的需求, 生成Word格式的报告, 而不是单纯的一张表格的报表. 就像体检报告一样. 数据来源部分决定采用一个存储过程返回Dataset的方式, 整张报告的数据来源于此Dataset的多 ...
- C# 处理Word自动生成报告 二、数据源例子
还是以学生.语文.数学.分数为例吧, 感觉这个和helloworld都有一拼了. 造一张表如下, 整张报表就围绕这个表转圈了, 顺便说下就是名字如有雷同纯属巧合 新建个存储过程 ALTER PROCE ...
- Word自动生成目录
博主最近在写报告的时候要在Word里面做个目录,再做个页码,然后上网搜了一些方法,非常零散,我弄了好久才弄好.在这里我把整套方法分享一下. 声明:内容完全独创! 工具:Word 2016. 效果:如下 ...
- jmeter自动生成报告
从JMeter 3.0开始已支持自动生成动态报告,我们可以更容易根据生成的报告来完成我们的性能测试报告. 如何生成html测试报告 如果未生成结果文件(.jtl),可运行如下命令生成报告: jmete ...
- 利用html实现类似于word自动生成的目录的效果
在word中的自动生成目录当中,我们会看到是这样的目录结构: 嗯,自动生成固然是简单,但是在html当中,却没有一个合适的标签来去做.今天后台导出PDF的时候告诉我,他需要用html做一个这样的结构, ...
- codesmith 自动生成C# model 实体模板
<%-- Name:自动生成 Author: 陈胜威 Description: 直接生成model类 --%> <%@ Template Language="C#" ...
- 使用LaTeX和KnitR自动生成报告
扩展名为.Rnw(Rtex)的文件就是包含了R代码的LaTeX文档.编译的时候,先用Rscript调用Knitr处理,生成.TeX文档,然后用pdfLaTeX/XeLaTeX编译成PDF. 最方便的编 ...
- word自动生成章节标题
一级目录 二级目录 三级标题
随机推荐
- HTML与HTML5复习标签汇总
按字母顺序排列 New : HTML5 中的新标签. 标签 描述 <!--...--> 定义注释. <!DOCTYPE> 定义文档类型. <a> 定义锚. < ...
- 前端工程之CDN部署
之前发的一篇文章<变态的静态资源缓存与更新>中提到了静态资源和页面部署之间的时间间隙问题,这个问题会迫使前端静态资源发布必须采用非覆盖式. 那篇文章中没有详细解释为什么会产生不可忍受的时间 ...
- [笔记]《JavaScript高级程序设计》- 最佳实践
一.可维护性 1 什么是可维护的代码 可理解性--其他人可以接受代码并理解它的意图和一般途径,而无需原开发人员的完整解释. 直观性--代码中的东西一看就能明白,不管其操作过程多么复杂. 可适应性--代 ...
- bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)-VMware下三种网络配置方式
VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式. 1 ...
- this语句
this语句 this语句调用构造器 原 因: 代码功能重复,重复会导致代码维护性低. 如何使用:this([实参]); 注意事项:构造器重载的调用,this(参数)必须写在构造方法第一行,因此 ...
- javascript 执行环境细节分析、原理-12
前言 前面几篇说了执行环境相关的概念,本篇在次回顾下 执行环境(Execution context,简称EC,也称执行上下文 ) 定义了变量或者函数有权访问的数据,决定了各自行为,每个执行环境都有一个 ...
- 初学Vue之数量加减
效果图: HTML: <div class="count3"> <ul> <li v-for="(key,idx) in liList&qu ...
- android支付宝app支付(原生态)-包括android前端与java后台
本文讲解了 android开发的原生态app集成了支付宝支付, 还提供了java后台服务器处理支付宝支付的加密代码, app前端与java后台服务器使用json数据格式交互信息,java后台服务主要用 ...
- [51nod1232]完美数
如果一个数能够被组成它的各个非0数字整除,则称它是完美数.例如:1-9都是完美数,10,11,12,101都是完美数,但是13就不是完美数(因为13不能被数字3整除). 现在给定正整数x,y,求x和y ...
- angular1项目打包app及logo和启动图片的设置
打包思想:ionic和angular混合开发app,那么纯angular1的项目也是可以打包出来. 技术需要:安装一个新的ionic2的项目,环境配置成功,这里打包的配置需要 http://www.c ...