APP下载

基于Word模板的Excel通用报表插件设计与实现

2023-11-06张春雷

电脑知识与技术 2023年27期
关键词:插件邮件报表

张春雷

(山东英才学院,山东 济南 250104)

0 引言

作为信息化系统的重要组成部分,数据收集、数据处理和格式输出是企事业单位日常办公管理中的三个重要环节[1]。其中,数据收集,近几年已经发展出了非常成熟的市场产品,如:问卷星、腾讯文档、金山文档等,但数据处理和格式输出一般分别用Excel 和Word进行处理。Excel作为进行数据处理的主流的办公软件,很多情况下,都可以作为一个小型数据库,存储各种原始数据,并能够进行汇总、计算、筛选等数据处理;若要对这些数据进行排版和打印,通常需要用Word 文档以特定的组织形式来完成[2]。如何将二者进行无缝衔接,更高效地对数据进行处理和展示,相关研究较少,更没有成熟的产品。

本文以日常办公使用最多的Office办公软件为基础进行二次开发,提出了一种以Word 模板为格式输出报表,以Excel为数据处理和存储工具,设计了一种Excel通用报表打印插件,降低了报表设计的难度,使得报表设计工作可以由程序开发人员交给软件使用人员,降低了报表设计门槛,减轻了程序设计人员的工作量。

1 基本思想

1.1 利用Excel进行数据处理

因近几年在线数据采集的互联网产品的成熟,我们可能会经常使用在线表格收集数据,或通过各种业务系统导出数据,这些数据往往是以Excel 的形式存在的。为了更好地使用这些数据,可能会需要将这些数据以各种不同的排版格式打印出来。如果仅仅依靠粘贴、拷贝,一是工作量大,二是也容易出错;如果开发相应的报表系统,又会因为报表格式没有统一的样式,开发工作量同样也巨大。因此,在完成了原始数据的采集、汇总的第一步后,通常还需要将其按照特定要求,转为符合指定格式要求的文档,方便归档和打印。

1.2 利用Word模板进行报表设计

常用报表开发设计工具把报表在形式上分解成四个部分:标题区、表头区、表体区和表尾区,然后对每个部分采用逐个定义的方法,操作烦琐、专业性强,难以满足用户定制报表格式及临时报表生成的要求[3]。

根据报表内容是否变化,本文将报表设计分解为两部分,一是报表格式的设计,这一部分主要包括标题、页眉、页脚、表头等在不同场景下不会变化的元素,主要依靠Word 功能实现;另一部分是报表数据,这一部分主要包括动态变化的数据、汇总信息等,在设计好的报表中,在报表中需要输出数据的位置插入书签,如图1 所示,书签名对应Excel 表格中列的标题名。

图1 Word中的插入【书签】功能

1.3 Word的邮件合并功能

利用Excel 文档进行数据处理,Word 文档进行报表格式的设计后,可以使用Microsoft Word 的“邮件合并”功能,实现将Excel 的表格数据批量地转换为Word 报表[4]。Excel 表的一行对应一个报表,Excel 表所有记录对应整份报表。

1.4 Word与Excel的结合实现邮件合并

某学院要为某专业的毕业生进行毕业论文答辩,需要打印答辩成绩表,从“大学生毕业设计(论文)管理系统”中导出学生信息如下,包括题目、学生姓名、学号、班级、指导教师、职称等字段信息,文件格式是Excel文件,如图2所示。

图2 Excel报表打印数据

1)开始邮件合并

打开Word 模板,选择【邮件】→【开始邮件合并】→【信函】按钮,如图3所示。

2)选择数据源

用鼠标单击下拉列表【选择收件人】,然后选择【使用现有列表】菜单项。在“选择数据源”窗口中,找到存储“图2 数据”的Excel 文件,确认;然后在图4 所示的界面中选择“答辩成绩表”工作表,单击【确定】按钮。

图4 选择“数据源”界面

3)插入合并域

将光标置于插入点处,单击工具栏菜单的【插入合并域】,从弹出的列表中选择相对应的字段插入,对每一插入点,都需要重复执行这一操作,如图5所示。

图5 “插入合并域”界面

4)生成合并文档

用鼠标单击【邮件】→【完成并合并】→【编辑单个文档】→【全部】→【确定】按钮,便可将Excel表格数据转换成Word模板样式的本次参加答辩学生的预填写完相关内容的答辩成绩表。

2 Excel报表插件的开发

从前面的介绍可以看出,虽然Word 的“邮件合并”功能强大,但操作步骤烦琐,对使用人员要求较高,不易掌握,本文利用Visual Studio 2022 对Excel 进行二次开发,将Word 的“邮件合并”功能集成进Excel插件,简化了使用“邮件合并”的步骤,降低了使用门槛,并且插件还具有Word 模板的集中管理和分发的功能,将Word模板的制作和插件的使用分开,进一步降低了最终插件使用人员的技术要求。

2.1 开发环境

VSTO(Visual Studio Tools for Office)是VBA 的替代,使得开发Office 应用程序更加简单[5],是微软推出的.NET 环境下Office 应用程序开发包[6]。VSTO 还提供了增强的Office 对象,可以用它们来编程。可以利用VSTO增强Excel的功能,如添加.NET控件,然后把数据直接绑定到控件上。

2.2 界面扩展

利用VSTO可以很容易地扩展Excel的功能,实现将Excel数据填充到Word报表模板中的功能,界面如图6所示。

图6 Excel功能扩展界面

2.3 利用VSTO实现Excel插件开发

打开Visual Studio 2022,选择【新建】→【项目】,弹出如下的“创建新项目”界面,在右侧选择“Excel VSTO外接程序”,点击【下一步】,即可创建一个新的VSTO项目。

在新创建的VSTO项目中可以创建新的Excel“功能区”以实现Excel 功能的拓展,“图6 Excel 功能扩展界面”中【输出到Word】功能按钮就是利用Word 对象的MailMerge 对象,程序化地实现Word的邮件合并功能,其逻辑流程如图7所示。

图7 输出到Word流程图

在图6中点击【Word报表】右下角扩展按钮,可以弹出如图8 所示界面的对话框,该对话框可实现对Word报表模板的上传、下载管理等管理功能。

图8 报表插件的扩展功能

3 总结

借助VSTO平台所提供的功能,定制和扩展了Excel应用程序的功能,实现了以下3个方面的功能。

1)报表模板设计

利用WPS 或Word 等办公软件,根据具体的业务需求定制报表模板,设置报表静态格式信息,然后,在适当的位置插入标签标记,编辑其属性。

2)上传模板

用户将制作好的报表Word 模板利用Excel 插件上传到数据库中,可以对上传的模板进行替换、删除等操作。

3)生成Word报表

打开整理好的Excel数据,利用插件扩展程序,根据选定的Word 模板,生成下载填充完数据的Word文件。

猜你喜欢

插件邮件报表
基于James的院内邮件管理系统的实现
来自朋友的邮件
自编插件完善App Inventor与乐高机器人通信
LabWindows/CVI中Excel报表技术研究
CMailServer
一封邮件引发的梅赛德斯反弹
从三大报表读懂养猪人的成绩单
MapWindowGIS插件机制及应用
基于Revit MEP的插件制作探讨
月度报表