APP下载

基于C#和定制模板的自动出报方法设计实现

2022-07-08郭博雷张鹏武林伟赵坤田晗

电子技术与软件工程 2022年8期
关键词:图例书签行距

郭博雷 张鹏 武林伟 赵坤 田晗

(中国电子科技集团公司第二十七研究所 河南省郑州市 450047)

1 概述

为解决从大量数据中进行数据整理、统计、形成报告对人力资源的消耗,将“人”从筛选数据的重复性劳动中解放出来,研究了一种采用“Word 定制模板+xml 配置+C#实现”的方式自动生成文档报告的方法。此方法考虑了不同项目、不同数据种类、不同报告格式的需求,只需少量修改定制模板、xml 配置文件即可解决实际项目需求。

Office Word 是普及面很广的图片和文字编辑工具,具有界面操作简单、易用性强的特点,支持模板应用,支持多种编程语言通过组建对象模型对Word 软件进行操控。可扩展标记语言XML 是一种以结构化的开放格式描述数据的元数据定义语言,具有把信息的结构、内容和显示分离开的能力,允许用户任意定义元素的名称和属性及文档数据的结构。C#是一种由C 和C++衍生出来的编程语言,既继承了C 和C++的强大功能,又综合了VB 的简单可视化操作和C++的高效运行,其面向对象的卓越性使之成为构建各类组件的理想选择。

Word 和C#的优越性能,为笔者实现基于C#和定制模板的自动出报方法提供有力支持。下面按照实现步骤,从模板制作、编码实现、自动出报三个阶段阐述此方法。

图1: 定制模板制作

图2: 添加书签

2 模板制作

常规Word 版报告,可分为文字描述、表格数据呈现、图例展示三部分,因此,在进行模板制作时,按照文字、表格、图例三类进行模板制作、书签设置和xml 配置。

2.1 模板制作与书签设置

模板制作与书签设置,是实现此方法的前提工作。Word模板制作工作流程如下:

(1)新建Word 模板,根据项目需求编辑出报所需呈现的文字、表格、图例:设置文字的字体、字号、颜色、段落行距、样式(是否加粗、是否添加底纹背景等);设置表格标注、表头、单元格的字体、字号、颜色、段落行距、样式、设计边框线型线宽等;设置图例的图注字体、字号、颜色、段落行距、样式、图片版式;

(2)为出报时需要替换的文字、表格、图例等数据源添加书签,为书签命名;

(3)模板制作完成后,保存模板。

2.2 xml配置

xml 配置主要完成书签的定义工作,包括书签的格式定义等。xml 配置工作流程如下:

(1)新建xml 文档,为文字类书签自定义字体、字号、颜色、段落行距、样式(是否加粗、是否添加底纹背景等);

(2)为表格类书签设置表头、单元格字体、字号、颜色、段落行距、样式、设计边框线型线宽等,为每一列绑定数据源名称;

(3)为图例类书签设置段落行距、图片版式等。

注意,书签名称必须与Word 模板书签名称保持一致,否则,C#编码实现时,会因为找不到书签而无法将书签替换为有效值。

3 编码实现

模板制作完成后,使用C#进行编码实现。以下为出报主函数和参数类型定义。因代码量较大,以解释性语言代替代码贴出来,供需要者梳理软件流程。

图3: 模板定制流程

4 自动出报

自动出报阶段,主要包括出报数据准备、整编出报两部分。出报数据准备,顾名思义,为自动出报提供数据准备、图例准备。包括根据查询条件从数据库中检索满足查询条件的数据,将查询结果经过字典翻译、无效值剔除后,显示在界面列表上;查询图例文件,获取图例;根据数据、图例查询结果,为出报函数提供输入参数。整编出报部分,主要完成定制模板的调用,使用待出报数据替换书签;根据xml 配置文件调整报告格式,形成Word 版报告。

此部分功能需要进行编码实现。本文是在Visual Studio 2010 平台上采用C#语言进行的功能开发。此部分功能通用化程度高,只要确保Word 模板中的书签名称与xml 配置文件中的书签名称一致,可以无需考虑模板的特异性,实现不同种类定制模板的整编出报。软件流程如图4 所示,形成的Word 版报告如图5 所示。

图4: 自动出报软件流程

图5: 根据定制模板生成的报告

5 两种出报方法对比

笔者研究了两种不同的出报方法实现自动出报功能,在配置为Intel i7-6700、CPU 3.40GHz、8GB 内存的计算机上,两种出报方法效率均为秒级(不考虑数据查询、显示耗费的时长),且两种方法均实用,可根据需要自行选择。表1 为两种出报方法对比情况表。

表1: 基于xml+定制模板、基于SQL+定制模板两种出报方法比较

6 结语

因项目需要,研究了一种基于C#和定制模板的自动出报方法,进行了编码实现,并对比分析了此方法的优缺点。采用此方法仅需少量修改定制模板、xml 配置文件,即可实现不同项目出报需求,通用化程度高,出报快,为快速实现出报节省大量人力资源,可广泛应用于需要出报的各行业项目。

猜你喜欢

图例书签行距
透明书签
2020年度夏玉米行距密度试验研究报告
十一月书签
贰月书签
找拼图
犬狗的画法(六)
不同播量、行距对“藏青320”产量的影响研究
如何让学生巧用图例解决数学问题
可爱的小鸟
密度和行距配置对玉米产量及其构成因素的影响