Excel数据转存数据库的应用框架

简介:如何把 Excel 中的数据移植到关系型数据库中,一直是大家关心的话题,本文提出了一种解决 方案,即使用 Apache POI 按一定的 Excel 文件到 数据库表的映射规则来解析数据,然后使用 JDBC 或 者 Hibernate/JPA 等技术把数据转存到数据库中。

引言

随着企业 IT 系统的不断升级,很多企业有提升遗留系统的强烈需求。而整合遗留系统中的信息资源 是其中最为关键的一步,进而可对信息进行数据挖掘等创新工作。本文涉及这样的一个应用案例,企业的 数据信息是以 Excel 文件作为其附件的方式,分散存储在企业不同的服务器上的,客户要求把这些文件 里面的数据信息转存到数据库中。

读者可能也会遇到其它的应用场景,要求把 Excel 文件中的数据信息解析出来并存入到数据库中。

本文则提供了一种相对高效而智能的解决方案用以解析 excel 文件,并转存入数据库中。

Apache POI (POI-HSSF and POI-XSSF) 简介

POI 是 Apache 基金组织的子项目,POI(Poor Obfuscation Implementation)的目标就是提供一组 Java API 来使得基于 Microsoft OLE 2 Compound Document 格式的 Microsoft Office 文件易于操作。 HSSF(Horrible Spreadsheet Format)是 POI 项目 Excel 文件格式(97 - 2007)的纯 java 实现, 通过 HSSF,开发者可用纯 Java 代码来读取、写入、修改 Excel 文件。而 XSSF 则是 Excel 2007 OOXML(.xlsx) 文件格式的纯 java 实现。

本文主要涉及到应用 HSSF 和 XSSF 读取 Excel 文件中的数据。

Excel 文件到表的映射元数据定义

如何把 Excel 表里面的数据映射为关系数据库表中的数据呢?关系数据库中的二维表是结构化的数据 存储,而一个 Excel 文件的一个 Sheet 页面就可能包含多个可映射为数据库表结构的信息块。这个信息 块可能很简单,也可能非常复杂。在本文中,针对 Excel 中信息块的实际情况,我们定义了几种 Excel 文件到数据库表的映射规则。这些规则就是我们用以解析的元数据。离开了这些元数据,我们就谈不上智 能而高效的解析了。

映射规则一:单元格单一映射

Excel 表中的一个单元格(cell)对应关系数据库中某一个模式(Schema)下一张表(Table)的一个 域(Field)。 如: A1 -> name

映射规则二:单元格组合映射

Excel 表中的多个单元格对应关系数据库中某一个模式(Schema)下一张表(Table)的一个域 (Field)。 组合的方式是字符串的连接,比如 C1,C2, F3 -> address 。可以在映射规则里定义字 符串的分隔符,例如,在上面的例子中是用逗号“,”组合的。

时间: 2024-09-08 09:39:55

Excel数据转存数据库的应用框架的相关文章

easyui-关于spring mvc框架 easyUI界面将excel数据导入到数据库中的方法

问题描述 关于spring mvc框架 easyUI界面将excel数据导入到数据库中的方法 将一个excel表格的文件导入到数据库中,在界面调用得到所有数据的方法将数据显示在页面上,如何将excel表格的文件导入到数据库中呢 解决方案 可以使用poi 插件,对Excel进行操作,获取数据,保存到数据库中

将Excel数据导入Access数据库

access|excel|数据|数据库 将Excel数据导入Access数据库   最近,有一些网友常常问到关于Execl数据库操作的问题,其中不少是关于"Excel数据导入Access "的问题.至于将Execl数据导入Access的方法有两种:一种是直接导入法:另一种是建立连接法.而我们在日常工作中用的最多的是直接导入法,限于篇幅,我这里就只讲直接导入法,希望能给大家带来参考. 具体操作可以按以下步骤进行: 1. 启动Microsoft Access2000: 2.  建立一个空数

c#将Excel数据导入到数据库的实现代码

 这篇文章主要介绍了c#将Excel数据导入到数据库的实现代码,有需要的朋友可以参考一下 假如Excel中的数据如下:     数据库建表如下:     其中Id为自增字段:     代码:      代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; usin

麻烦各位大神帮帮忙!C#解析xml实现对应数据库中的字段,导入excel数据到orcel数据库

问题描述 麻烦各位大神帮帮忙!C#解析xml实现对应数据库中的字段,导入excel数据到orcel数据库 我现在已经写好了导入数据库了,可是字段是定死的,预防有时候excel表格有变化,方便修改,所以解析xml,然后在xml对应字段,然后再导入到数据库中. 解决方案 用不着什么xml,根据你的需求,用一个简单的文本文件,每一行对应一个字段,和对应的excel列,然后程序读取下就可以了. 解决方案二: C#配置xml实现自动导入excel数据到数据库中对应的字段,麻烦各位大神帮帮忙!

用npoi将excel数据导入到数据库,数据0.9变成了.9怎么办

问题描述 用npoi将excel数据导入到数据库,数据0.9变成了.9怎么办 DataTable table = new DataTable(); OpenFileDialog opfile = new OpenFileDialog(); opfile.Filter = " xlsx files(*.xls)|*.xls|All files(*.*)|*.*";//选择保存的格式(显示格式|实际格式) if (opfile.ShowDialog() == DialogResult.OK

asp.net中EXCEL数据导入到数据库的方法_实用技巧

本文实例讲述了asp.net中EXCEL数据导入到数据库的方法.分享给大家供大家参考.具体分析如下: excel是办公中非常常用的一个办公表格了,但我们在开发中通常会需要直接把excel数据快速导入到数据库中了,这里整理了一个asp.net中EXCEL数据导入到数据库的例子供各位参考学习. 注意:EXCEL中的第一行不能导入.下面是源码:IntoExcel.aspx: 复制代码 代码如下: <%@ Page  AutoEventWireup="true" CodeFile=&qu

excel数据导入mysql数据库二种方法

下面我们要讲二种excel数据导入mysql教程数据库教程方法了,这二种方法比较简单,也是很方便的,以前我把excel数据导入到mysql数据库都是用php教程程序来实例,现在我们不需要程序,用现有的工具就行了. 方法一,利用phpmyadmin把excel数据导入mysql数据库方法如下 这是excel的,必须是这种样子的. 在phpmyadmin导入文件的格式应该如上图配置.(注意一点,导入的excel表的结构必须与mysql数据表的结构,数据类型等一致就ok了.否则会导入失败的. 方法二,

批量Excel数据导入Oracle数据库

由于一直基于Oracle数据库上做开发,因此常常会需要把大量的Excel数据导入到Oracle数据库中,其实如果从事SqlServer数据库的开发,那么思路也是一样的,本文主要介绍如何导入Excel数据进入Oracle数据库的内容. 一般我们拿到的Excel数据,都会有一个表头说明,然后下面是一连串的数据内容,如下图所示:   而Oracle中数据库一般为英文名称,中文名称就需要转义,为了方便导入,我把中文名称对照数据库的字段,把表头修改为对应的字段名称,如果没有数据库对应的字段,那么删除Exc

导入Excel数据到Oracle数据库的脚本

在cmd运行窗口中输入:sqlldr customermanager/123@orcl control="E:\CustomerData\excelInputOracle\insert.ctl" log=E:\CustomerData\excelInputOracle\log.txt skip=1 说明: { sqlldr是sqlloader的命令语句 customermanager/123@orcl是连接数据库,用户名/密码@服务名 control控制命令 后接控制文本的地址 log