From Excel To Database

前言

  Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,是由Microsoft为Windows和Apple Macintosh操作系统的电脑而编写和运行的一款试算表软件。Excel 是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于管理、统计财经、金融等众多领域。(摘自百度百科)

用户想用Excel就必须在本地安装相应的软件,但是有些特殊的群体只想查看Excel里面的数据。这些人仅仅是看看比如这个季度的销售统计表等,根本谈不上编辑,但是也要装上这么一套的软件,那么有没有不用装就可以查看这些表格呢。回答当然是有的,Apache软件基金会就有这么一个项目“Apache POI”,下面简称“POI”。POI提供API对Microsoft Office格式文档的读和写,当然这里我们只用到读的功能。

 

简单了解下POI

  Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint等文件。

 

本项目的产物是何东西

  通过本项目的完成我们可以实现用户上传EXCEL,用户选择要入库的SHEET(可能有多张SHEET表),然后输入表头和表左侧的固定的列数(一般称为表头),最后倒入到指定的数据库。完成后用户将在此基础上浏览查询,甚至可以进行统计功能。

 

准备工作

 

第三方依赖

Apache POI组件:

  目前官方的最新稳定版本是Apache POI 3.7 本程序将选择此版本,当然喜欢尝新的同学可以尝试使用3.8 Beta5版本,原则上生成环境一律用稳定版本。

 

Struts2框架

  Struts2目前最新版本已经更新至2.3.1,由于当初开发的时候官方的稳定版本是2.2.1所以将继续沿用2.2.1的版本。

 

开发工具

  建议选用最新版的Eclipse IDE for Java EE Developers版本可以提高开发效率,如果你手上有MyEclipse也可以用,但是你电脑要有一定高的配置不然会出现假死状态。

 

数据库

  这里我们选择微软的SQL Server 2008 Express版本。因为本项目重点在Excel解析那块所有选个简单的数据库就足以。

 

数据库驱动

  这里要特别的注意下微软官方下载的驱动下有两个驱动sqljdbc.jar和sqljdbc4.jar。这里简单说下这两个区别sqljdbc.jar提供对JDBC2.0的支持,要修使用JRE的版本是5.0,如果你在JRE6.0环境上使用会报错得;sqljdbc4.jar类库提供对JDBC4.0的支持,而且包括了sqljdbc.jar的所有功能还新增JDBC4.0的方法,sqljdbc4.jar需要使用JRE6.0及以上的环境,当然如果在低于也会报错。本项目开发机器上为JRE6.0所以改选用sqljdbc4.jar。

 

项目的框架

 

ExcelManage 项目的名称

  |-src

    |-action Struts2 Action类

    |-config 数据库和系统配置文件

    |-dao 数据访问层

    |-dao.impl 数据访问层实现(jdbc)

    |-domain 实体类

    |-select 查询

    |-select.impl 查询的实现

    |-service 数据服务层

    |-service.impl 数据服务层实现

    |-test 测试类

    |-util 辅助类

  |-WebRoot 网站目录

    |-WEB-INF web.xml和jar包

    |-META-INF

    |-其他 jsp页面、javascript等

 

数据库的设计

Tables表

  说明:用于存放Excel表中sheet的名字

  主要字段:唯一编号(PK)、名称、描述

Category表

  说明:分类表

  主要字段:唯一编号(PK)、分类名称、分类父ID(FK,Category)

Cate_Tab 表

  说明: Tables表和Category表的关系表

  主要字段:唯一编号(PK)、分类ID(FK,Category)、SheetID(FK,Tables)

Files表

  说明:存放已经上传的EXCEL文件

  主要字段:唯一编号(PK)、文件EXCEL名称、文件EXCEL地址

File_Tab表

  说明:Files和Tables的关系表

  主要字段:唯一编号(PK)、EXCEL文件ID(FK,Files),SheetID(FK,Tables)

Fields表

  说明:用于存放表头字段

  主要字段:唯一编号(PK),父ID(FK,Fields)、字段名称、SheeID(FK,Tables)、字段类型(行还是列)、序列(控制最后显示换行,其实也可以不要)、跨多少行、跨多少列。

Data表

  说明:存放Sheet中数据区域部分(除表头之外的部分)

  主要字段:唯一编号(PK)、SheeID(FK,Tables)、X坐标、Y坐标、具体数据

  备注(X,Y坐标和Fields表中唯一编号挂钩,具体可以参照字段类型)

 

image

 

  根据上面的需求我们可以来先把项目在eclipse里面搭建起来,把改要的jar包都添加进来做一些工作前的准备。搭建好了最后写个测试类测试action和数据库连接,最好也安装Apache POI官方文档写个POI的例子。

  下面将会着重讲解对Excel的操作,至于数据库的写入和查询数据等操作可能就简单的提下,不会具体贴出详细代码。

posted @ 2011-12-22 17:45  童同  阅读(512)  评论(0编辑  收藏  举报