用excel打造报表查询系统
网络数据库以及ERP在中小型企业中日益风行,虽然ERP功能强大,但有的ERP报表系统中规范的报表较少,主要提供二次开发接口或通过如CRYSTALREPORT等其他报表工具进行管理,其实我们可以使用Excel实现部分报表查询功能。在下面我将通过一个实例,向大家介绍如何通过ODBC,用Excel建立方便的报表查询系统。
实现原理:通过ODBC将Excel与ERP后台数据库连接起来,将数据库中的数据有选择地导入到Excel中,然后通过Excel强大的计算、汇总、筛选等功能,来弥补部分ERP系统报表较少的不足,以满足用户日常使用的需要。
[建立ODBC连接]
在电脑上建立一个ODBC连接,使Excel通过ODBC连接到ERP数据库(如SQLSERVER数据库)。打开“开始→设置→控制面板→管理工具→ODBC”,点击“添加”按钮。这里以SQLSERVER为例,选择“SQLSERVER”,点击“完成”。接下来对话框的服务器一项应填写公司ERP数据库所在机器的机器名或IP地址,点击“下一步”按钮。
身份验证分为两种方式:一种是与操作系统相结合的身份验证,另一种是使用单独的SQL身份验证。在这里选取单独的SQL身份验证,登录名及密码请咨询公司的数据库管理员,然后点击“下一步”。
在接下来的对话框中,勾选“更改默认的数据库为”,在下面填入数据库名,点击“下一步”按钮。然后点击“测试数据源”按钮以测试本机与ERP数据库的连接情况,如果见到测试成功提示说明ODBC设置成功。
小贴士:ODBC(开放式数据库连接)是一种数据库接口技术,它能使应用程序访问以结构化查询语言(SQL)作为数据访问标准的数据库管理系统的数据。
[将数据导入Excel]
打开Excel的“数据”菜单,点击“导入外部数据→新建数据库查询”,在选择数据源对话框中选择刚刚建立的ODBC连接,点击“确定”按钮。
进入查询向导界面,选择你需要的表及字段,双击即可。表和字段的定义请查询相关ERP的文档或咨询数据库管理员。
将选择的字段按你所需要的顺序排列(多张表之间的连接将在以后提及),点击“下一步”。如果需要筛选数据,请在筛选数据对话框中输入过滤条件,点击“下一步”。
如果需要查询的数据全部在一张表中,可以在完成对话框中选择直接将数据返回到Excel,如果数据存在于多张表中,需要进行表与表之间的连接或进行更复杂的筛选、汇总操作,选择“在MicrosoftQuery中查看数据或编辑查询”,点击“完成”。
在Query中,可以进行表与表之间的连接,条件的过滤、格式的定义、排序、汇总等等,如果对SQL语言比较了解的人可以直接修改SQL语句。
然后选择“将数据返回Excel”,将源数据库中的数据导入到Excel。这时将出现“外部数据”工具栏。如果需要将Excel中的数据与数据库同步,点击“刷新数据”即可。如果需要编辑刚刚建立的查询,点击“编辑查询”进行编辑。
为了方便每次自动刷新,点击“区域属性”,在弹出的对话框中勾选“打开工作簿时自动刷新”,这样在每次打开Excel文件时得到的就是与源数据库同步的数据了。
小贴士MicrosoftQuery是用于将数据从外部数据源(包括Access、SQLServer、Excel、文本文件)检索到Excel中的一种程序,在每次更新数据库时,自动通过源数据库中的数据来更新Excel报表和汇总数据。形象地说就是向外部数据库提出的一个问题。
[建立属于自己的查询]
通过以上两个步骤,你已经得到了与源数据库同步的数据,下一步就是根据自己的需要,在Excel中建立自己的查询。一般的方法是在数据源工作簿之外新建一个工作簿,通过连接的方式,将数据按自己的格式建立自己的查询。
下面将介绍一下数据透视表。数据透视表是一种交互式报表,可快速合并和比较大量数据。在你得到大量源数据后,用数据透视表可以进行自动汇总、自动刷新。
点击“数据→数据透视表”,选取“数据列表和数据库”和“数据透视表”,点击“下一步”。
为数据透视表新建一个工作表,点击步骤3对话框的“布局”按钮。将汇总的项目(如部件号)放置在“行”,将要求和的字段放置在“数据”中,点击“确定”然后点击“完成”,即可得到汇总数据。同样地将该数据透视表设置为打开时自动刷新。这样每次打开Excel时就得到了最新的汇总数据。
[总结]
先建立ODBC,然后通过导入外部数据将源数据库的数据导入,最后通过函数或数据透视表等方法对数据进行组织,以达到自己查询的目的。以上介绍的方法不光可以用在ERP后台数据库的前台查询中,也可以从桌面数据库ACCESS或其它的数据源中导入数据到Excel,建立属于自己的查询。
注明:内容转载自http://www.233.com/cy/zhidao/diansuanhua/20090604/081403318.html
用excel打造报表查询系统的更多相关文章
- 基于Impala平台打造交互查询系统
本文来自网易云社区 原创: 蒋鸿翔 DataFunTalk 本文根据网易大数据蒋鸿翔老师DataFun Talk--"大数据从底层处理到数据驱动业务"中分享的<基于Impal ...
- SNF开发平台WinForm-EasyQuery统计分析-效果-非常牛逼的报表查询工具
无论是单轴曲线 .双轴曲线 .柱形图 .饼图 .雷达图 .仪表图.图表引擎全能为您轻松实现.您只需要 3 步操作(数据源准备,设计图表,挂接到您想要展示的位置)便可完成 BI 的设计. 无论是普通报表 ...
- 【云图】如何制作全国KTV查询系统?
原文:[云图]如何制作全国KTV查询系统? 摘要:本文以[唱吧]531麦霸音乐节为案例,详细解读了如何导入自有数据到高德云图,并进行检索和展示.最后,调起高德mobile地图来进行路线规划和周边查询. ...
- TableStore最佳实践:GEO索引打造店铺搜索系统
摘要: 如何使用TableStore打造店铺搜索系统 一.方案背景 对于一套GEO管理系统,其核心点与瓶颈在于数据库的存储性能与查询能力:一方面,存储服务需要应对海量数据的低延迟存.读,另一方面,存储 ...
- 使用C#和Excel进行报表开发(三)-生成统计图(Chart)
有的Web项目选用Excel作为报表方案,在服务器端生成Excel文件,然后传送到客户端,由客户端进行打印.在国内的环境下,相对PDF方式,Excel的安装率应该比pdf阅读器的安装率要高,同时,微软 ...
- Android查询系统的音频(音乐播放器的核心)
//查询系统的音频库 public static List<MusicBean> getMusicInfo(Context context){ List<MusicBean> ...
- [原创]java WEB学习笔记90:Hibernate学习之路-- -HQL检索方式,分页查询,命名查询语句,投影查询,报表查询
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- C#操作Excel开发报表系列整理(转)
C#操作Excel进行报表开发系列共写了七篇,也已经有很久没有新东西了,现在整理一下,方便以后查阅,如果有写新的,会同时更新.需要注意的是因为Office的版本不同,实际的代码可能会有所不同,但是都是 ...
- atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结
atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结 1. 基本的流程 查询获得list 读取jsp的table获得标题and 字段的map to ...
随机推荐
- call(this)引起的对闭包的重新理解
call(this)引起的对闭包的重新理解.md 变量的作用域 全局变量局部变量 Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量. 函数外部无法读取函数内的局部变量. 函数内部 ...
- php实现单链表
<?php /** * 单链表 */ class Demo { private $id; public $name; public $next; public function __constr ...
- [Python][flask][flask-wtf]关于flask-wtf中API使用实例教程
简介:简单的集成flask,WTForms,包括跨站请求伪造(CSRF),文件上传和验证码. 一.安装(Install) 此文仍然是Windows操作系统下的教程,但是和linux操作系统下的运行环境 ...
- python27读书笔记0.3
#-*- coding:utf-8 -*- ##D.has_key(k): A predicate that returns True if D has a key k.##D.items(): Re ...
- 用shell查找某个目录下最大文件
网上资料学习: 1.查找当前目录下最大文件(包括子目录里文件): find . -type f -exec stat -c "%s %n" {} \; | sort -nr | h ...
- JLOI 2013 卡牌游戏
问题描述: N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张卡片,假设卡片上的数字为X,则庄家首先 ...
- java Scanner与BufferedReader读取键盘输入性能比较
java Scanner与BufferedReader读取键盘输入性能比较 1.Scanner和BufferedReader 性能比较 在java中常见的从键盘获取输入的方式有 ...
- nutch 采集到的数据与实际不符
现象,这个网站我总计能抽取将近500个URL,但实际只抽取了100条 解析:nutch默认从一个页面解析出的链接,只取前 100 个. <property> <name>db. ...
- 为你下一个项目准备的 50 个 Bootstrap 插件
Bootstrap是快速开发Web应用程序的前端工具包.它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等. 本文向你 ...
- BZOJ 3983 Takeover Wars 解题报告
我猜了一个结论,能合并就合并,到了必须要敌对交易的时候才进行敌对交易. 然后合并的话,肯定是拿最大的两个去合并. 至于敌对交易,肯定是干掉对方最大的公司才是有意义的. 于是各种分类讨论...看代码好了 ...