利用Excel 2000的制表功能
完成管理软件的制表打印
何兴春 李 敏
在MIS系统设计过程中,尽管有了日益强大的报表设计器,但开发人员设计一张报表仍然需要反复移动调整字段和边线位置,不但拖延了设计周期,而且修改也比较麻烦。笔者在实际应用中发现Excel软件与数据库有良好的接口,可以利用其制表功能完善、操作方便快捷的特点,对某些软件汇总后的数据进行二次处理,生成更为美观的表格,例如对报表套色、图文混排及手工剔除无效数据等。同时对于广大只熟悉办公软件的用户,无须掌握编程技术,稍加培训也能利用Excel设计自己所需要的报表。为此,我们将具体的实现方法和一些经验、技巧总结如下。
一、 新建数据源



进入“控制面板”,双击“ODBC数据源”图标,打开“ODBC数据源管理器”,选择“系统DNS”选项卡,单击“添加”按钮,打开“创建新数据源”对话框(如图1所示)。此时选择您的信息管理系统采用的数据库驱动程序,例如选择了“Microsoft Foxpro VFP Drive”,则系统允许打开的数据源将是DBF格式的文件(除Windows下的Foxpro或VFP数据库文件可使用这种驱动程序外,DOS下的Xbase、Clipper、Foxpro使用的数据库文件也都可打开),然后单击“完成”。此时会出现“ODBC Visual Foxpro Setup”设置窗口(如图2所示),首先要为新建的数据源命名,例如我们在“Data Source Name”一栏中添入“EXCEL数据源”;其后选择数据库类型,常见的DBF数据库应该选择“Free Table directory”类型;然后按“Browse”按钮选择数据库文件所在的目录。这里需要提醒您注意的是,该DSN设置能提取某目录下所有扩展名为.dbf的数据文件作为数据源,因此在管理系统中用于生成报表的数据最好以数据库形式存放在某一指定文件夹里,这样才能在Excel提取数据时能方便地找到所需数据库。

二、 在Excel 2000中制表并从数据库中提取数据
ODBC数据源设置完毕即可进入Excel制表,这里我们只介绍数据导入的基本过程,对于制表的一些技巧,例如合并和锁定单元格、设定某些单元格隐藏不打印、表格栏目的合计以及当前日期的自动提取等,请参考有关书籍。
1.设计表格外观:报表标题栏可以按一定顺序自由排列。
2.建立查询文件:选择“数据”*“获取外部数据”*“新建数据库查询”(如图3所示),然后从选择数据源窗口中选择上面设置好的“EXCEL数据源*”(如图4所示),单击“确定”按钮,接着出现“查询向导—选择列”对话框,对话框中左边列出的是指定目录中的数据库报表文件,点击“+”将列出数据库字段,按照第1步中设计好的表格外观顺序依次选择字段,从而实现表格栏目顺序自由组合,点击“>”按钮将字段选定。单击“下一步”,进入“查询向导—筛选数据”对话框设置数据筛选的条件,例如此处将“洗衣机型”为“非空值”设为条件。单击“下一步”,进入“查询向导—排序顺序”对话框,设置行数据的排列顺序,例如设置为“洗衣机型”“按升序”排序(此过程如图5所示)。

3.保存查询:因为Excel还可利用Micosoft Query对查询的SQL语句进行编辑以及数据筛选预览等,方便高级用户对数据进行万能筛选,所以建议您单击“保存查询”按钮将查询保存。
4.提取数据:单击“完成”按钮并指定数据填充区域,例如“=$A$4”,那么满足条件的数据便会从数据库中自动提取并从单元格$A$4开始向下填充。
三、 对填入数据的刷新以及格式设置
自动填入的数据可能仍然不能满足我们的需要,因此还要对数据区域的有关参数进行设置。您可以在数据填充区域任意单元格中单击鼠标右键,在快捷菜单(如图6所示)中选择“数据区域属性”,打开“外部数据区域属性”对话框(如图7所示),其中最常用的设置如下:

1.数据库字段名称不反映在表格中在默认情况下,数据填充的第1行是数据库字段名,如果数据库中字段名为英文,则会使表头很难看,所以通常采用自定义的表头,而将这行填充的字段名删除。但每次刷新后都要手工删除这一行,非常麻烦,我们可以通过取消对话框中“数据格式及版式”项目中的“包含字段名”复选框来解决这个问题。
2.数据的实时刷新选择对话框中“刷新控件”项目中的“允许后台刷新”和“打开工作簿时,自动刷新”2个复选框,这2项的选取主要是方便在其他软件系统中查询使用。如果想手工刷新,可以在图6的快捷菜单中单击“更新数据”。
3.防止数据区更新时因超长使表格下半部分汇总等数据被覆盖选择对话框中“用新数据重写已有单元格内容并清除无用单元格内容”选项,然后在Excel表格中,通过插入空行方式将“合计”栏目移动到100行以后,留出足够的区域作为数据填充区。数据填充完毕后,再将空行“隐藏”,则空行将不会被打印。
经过上面的操作,相信您一定对Excel 2000强大的制表和数据采集功能有一定的了解。如果您是一名程序员,还可在应用程序内对数据进行合计、分类、排序及汇总,再由Excel制成美观大方的表格,这样就能较好地弥补某些报表生成工具的缺憾和不足。