所谓poi就是apache提供好了一系列的接口,让程序员能够方便的使用程序对Word,excle,ppt进行操作,最近由于功能的需要,实现了excle批量导入数据库:
首先是下载相关包:
http://poi.apache.org/
然后是熟悉excle的主要结构:一个excle称为book,book里面有很多sheet组成,sheet由很多row组成,row由许多个的单元格组成。
进行批量导入的时候主要需要判断单元格(CELL)的类型,CELl主要有5种类型:
CELL_TYPE_STRING:字符型
CELL_TYPE_NUMERIC:数值型
CELL_TYPE_BOOLEAN:布尔型
CELL_TYPE_FORMULA:公式型
CELL_TYPE_BLANK:空值
如果是数值型还必须判断一下是否是Date,调用DateUtil.isCellDateFormatted(cell)方法判断。
下面是具体实现数据库批量导入的代码:
pojo类:
public class WorkerVO {
private int id;
private String workerName;// 员工姓名
private String workerDepart;// 所属部门,带职位
private String stuNumber;// 学号
private String college;// 院系
private String cardNumber;// 银行卡号
private String phoNumber;// 联系方式
private String randomNumber;// 随机代号
}
导入数据库的方法:
//该方法只对Cell进行数值和字符串判断,因为excle只含有数值和字符串
public void importWorkers() {
List<WorkerVO> workerList = new ArrayList<WorkerVO>(0);
FileInputStream input;
try {
input = new FileInputStream(
"E:/workspace/qgzx/src/oop/dalong/2010年10月工资总表.xls");
Workbook wb = new HSSFWorkbook(input);
Sheet sheet = (Sheet) wb.getSheetAt(0);//得到该excle的sheet对象,getSheetAt(0)中的参数表示sheet从0开始分别得到相应的sheet,同样也可以根据名字得到
for (int i = 0; i < sheet.getLastRowNum(); i++) {
WorkerVO worker = new WorkerVO();
String workerDepart;// 员工所属部门
String workerName;// 员工名字
String stuNumber;// 员工学号
String college;// 所属院系
String cardNumber;// 银行卡号
String phoNumber;// 电话号码
Row row = sheet.getRow(i);//得到该sheet对应的行号,行数从0开始
workerDepart = row.getCell(1).getStringCellValue();
if (workerDepart == null || "".endsWith(workerDepart)) {
break;
}
workerName = row.getCell(2).getStringCellValue();
if (row.getCell(3).getCellType() == Cell.CELL_TYPE_STRING) {
stuNumber = row.getCell(3).getStringCellValue();
} else {
stuNumber = new Long((long) row.getCell(3)
.getNumericCellValue()).toString();
}
college = row.getCell(4).getStringCellValue();
if (row.getCell(6).getCellType() == Cell.CELL_TYPE_STRING) {
cardNumber = row.getCell(6).getStringCellValue();
} else {
cardNumber = new Long((long) row.getCell(6)
.getNumericCellValue()).toString();
}
if (row.getCell(7).getCellType() == Cell.CELL_TYPE_STRING) {
phoNumber = row.getCell(7).getStringCellValue();
} else {
phoNumber = new Long((long) row.getCell(7)
.getNumericCellValue()).toString();
}
worker.setWorkerDepart(workerDepart);
worker.setWorkerName(workerName);
worker.setStuNumber(stuNumber);
worker.setCollege(college);
worker.setCardNumber(cardNumber);
worker.setPhoNumber(phoNumber);
Random random = new Random();
int add = random.nextInt(100000);
String randomNumber = "qzzz" + add;
worker.setRandomNumber(randomNumber);
workerList.add(worker);
}
} catch (Exception e) {
e.printStackTrace();
}
saveWorkerDAO sw = new saveWorkerDAO();
sw.saveWorker(workerList);
}
DAO类:
//执行数据库的批量保存
public void saveWorker(List<WorkerVO> workers) {
String sql = "insert into worker_table(worker_name,worker_depart,stu_number,college,card_number,pho_number,random_number) values(?,?,?,?,?,?,?)";
try {
java.sql.Connection conn = Conn2DAO.conn();//得到数据库连接对象
java.sql.PreparedStatement pstm = conn.prepareStatement(sql);
for (WorkerVO worker : workers) {
pstm.setString(1, worker.getWorkerDepart());
pstm.setString(2, worker.getWorkerName());
pstm.setString(3, worker.getStuNumber());
pstm.setString(4, worker.getCollege());
pstm.setString(5, worker.getCardNumber());
pstm.setString(6, worker.getPhoNumber());
pstm.setString(7, worker.getRandomNumber());
pstm.addBatch();
}
int[] t = pstm.executeBatch();
pstm.close();
conn.close();
System.out.println("保存成功。。");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
导入成功...耶耶。
分享到:
相关推荐
本篇文章将详细讲解如何实现“Excel批量导入数据库”,以及利用小工具提高效率。 一、Excel与数据库的交互原理 Excel数据批量导入数据库的过程涉及数据的读取、转换和存储。首先,Excel文件(通常是.XLSX或.XLS格式...
"用EXCEL批量导入数据库"这个主题涉及到的是一系列实用的技术,可以帮助用户提高工作效率,减少手动输入的错误。 首先,理解Excel的基本操作是必要的。Excel提供了丰富的公式、函数和数据分析工具,比如VLOOKUP、IF...
在IT领域,Excel批量导入数据库是一项常见的任务,尤其在数据处理和分析中。这个名为"Excel批量导入数据库"的示例(ExcelDemo)提供了一种自动化的方法,将Excel文件中的数据高效地导入到数据库中。这通常涉及到使用...
本项目聚焦于通过云函数实现Excel文件的批量导入到数据库的功能,利用了开源模块`node-xlsx`。 `node-xlsx`是一个Node.js环境下的库,专门用于处理Excel文件。它能够读取Excel文件,并将其解析为JSON格式的数据,...
Excel批量导入数据库
在本主题中,我们将讨论如何利用Spring 3.0 MVC和Apache POI库来处理Excel文件,实现批量导入数据库和导出数据的功能。 Apache POI是一个强大的开源库,专门用于读写Microsoft Office格式的文件,特别是Excel(....
Asp.net Excel批量导入数据到SqlServer数据库 本文将详细介绍如何使用 Asp.net 实现从 Excel 文件批量导入数据到 SqlServer 数据库中。该操作可以大大提高数据导入效率,缩短数据处理时间。 标题解释 Asp.net ...
本程序比较简单,就实现了excel的读取、... 2、读取excel并写入数据库,这里用SqlBulkCopy实现大数据批量导入数据库 三、注意事项 1、开发环境为Visual Studio 2010,数据库为SQLServer2008r2,使用.net 2.0开发。
本文将详细讲解如何使用Excel批量导入Oracle数据库,这是一个常见的需求,特别是在数据分析和报表生成等领域。 首先,我们需要了解Excel和Oracle数据库的基本概念。Excel是一款由Microsoft开发的电子表格应用程序,...
本教程将聚焦于使用C#编程语言实现从Excel文件批量导入数据到SQL Server数据库的过程,利用`SqlBulkCopy`类来高效地完成这一任务。 首先,`SqlBulkCopy`是.NET Framework中的一个强大工具,它提供了将大量数据一次...
总之,Excel批量导入导出数据库是通过编程自动化数据管理的有效手段,尤其适用于需要频繁交换数据的场景。掌握这一技能能极大地提高工作效率,减少人为错误。通过Python的pandas和SQLAlchemy等库,我们可以轻松地...
Java实现从excel中批量高效导入数据到数据库中,包括图片的导入存储,读取图片显示在jsp页面等,需要下载JspSmartUpload.jar和jxl.jar两个jar包,将两个包导入项目才能运行
Excel导入数据,使用Interop.Excel.dll类库批量导入数据到数据库。服务器:输入服务器IP或者本地电脑全称,数据库:要导入数据表的库名,账号:数据库账号,密码:数据密码,点击页面保存配置可将页面配置保存以方便...
本文将详细讨论批量导入数据库工具的相关知识点,帮助你更好地理解和应用这种工具。 首先,批量导入数据库工具是一种专门设计用于快速、高效地将大量数据一次性输入到数据库中的软件工具。它通常具有用户友好的界面...
在这个场景下,我们将探讨如何利用Spring Boot结合MyBatis实现将Excel数据导入到数据库的功能。 首先,我们需要了解Spring Boot的核心组件之一——MyBatis。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储...
在IT行业中,Excel数据导入数据库是一项常见的任务,特别是在数据分析、报表制作或系统集成等领域。Excel作为数据处理的便捷工具,其灵活的格式和强大的计算功能使得很多用户习惯于在Excel中整理数据。然而,当数据...
### C# 中 Excel 导入数据库的技术实现 在软件开发领域,特别是在企业级应用中,经常需要处理大量的数据,而 Excel 文件作为一种常见的数据存储格式,其数据导入到数据库中的需求非常普遍。本篇文章将深入探讨如何...
### 批量导入Excel数据到数据库:关键技术与实践 在企业级应用开发中,数据迁移、数据整合或数据处理往往需要将Excel数据批量导入到数据库中。本文将深入解析一个具体的实现方法,该方法利用了.NET框架下的`...
"EXCEL简单导入数据库"这个标题所指的知识点主要涉及如何使用编程手段将Excel文件的数据批量导入到数据库中。下面我们将详细探讨这个过程。 首先,我们需要了解Excel文件的结构。Excel文件本质上是一种表格数据格式...