`
dalongJDK
  • 浏览: 15756 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

excle批量导入数据库

阅读更多
      所谓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();
		}
	}

导入成功...耶耶。
1
0
分享到:
评论

相关推荐

    excel批量导入数据库

    本篇文章将详细讲解如何实现“Excel批量导入数据库”,以及利用小工具提高效率。 一、Excel与数据库的交互原理 Excel数据批量导入数据库的过程涉及数据的读取、转换和存储。首先,Excel文件(通常是.XLSX或.XLS格式...

    用EXCEL批量导入数据库.rar

    "用EXCEL批量导入数据库"这个主题涉及到的是一系列实用的技术,可以帮助用户提高工作效率,减少手动输入的错误。 首先,理解Excel的基本操作是必要的。Excel提供了丰富的公式、函数和数据分析工具,比如VLOOKUP、IF...

    Excel批量导入数据库

    在IT领域,Excel批量导入数据库是一项常见的任务,尤其在数据处理和分析中。这个名为"Excel批量导入数据库"的示例(ExcelDemo)提供了一种自动化的方法,将Excel文件中的数据高效地导入到数据库中。这通常涉及到使用...

    微信小程序云开发 Excel批量导入数据库

    本项目聚焦于通过云函数实现Excel文件的批量导入到数据库的功能,利用了开源模块`node-xlsx`。 `node-xlsx`是一个Node.js环境下的库,专门用于处理Excel文件。它能够读取Excel文件,并将其解析为JSON格式的数据,...

    Excel批量导入数据库.doc

    Excel批量导入数据库

    spring3.0 MVC Poi操作excel批量导入数据库和导出数据

    在本主题中,我们将讨论如何利用Spring 3.0 MVC和Apache POI库来处理Excel文件,实现批量导入数据库和导出数据的功能。 Apache POI是一个强大的开源库,专门用于读写Microsoft Office格式的文件,特别是Excel(....

    Asp.net Excel批量导入数据到SqlServer数据库

    Asp.net Excel批量导入数据到SqlServer数据库 本文将详细介绍如何使用 Asp.net 实现从 Excel 文件批量导入数据到 SqlServer 数据库中。该操作可以大大提高数据导入效率,缩短数据处理时间。 标题解释 Asp.net ...

    Excel读取和大数据批量导入数据库ASPNET源码

    本程序比较简单,就实现了excel的读取、... 2、读取excel并写入数据库,这里用SqlBulkCopy实现大数据批量导入数据库 三、注意事项 1、开发环境为Visual Studio 2010,数据库为SQLServer2008r2,使用.net 2.0开发。

    excel批量导入oracle数据库

    本文将详细讲解如何使用Excel批量导入Oracle数据库,这是一个常见的需求,特别是在数据分析和报表生成等领域。 首先,我们需要了解Excel和Oracle数据库的基本概念。Excel是一款由Microsoft开发的电子表格应用程序,...

    C#实现Excel导入数据到SQL Server数据库

    本教程将聚焦于使用C#编程语言实现从Excel文件批量导入数据到SQL Server数据库的过程,利用`SqlBulkCopy`类来高效地完成这一任务。 首先,`SqlBulkCopy`是.NET Framework中的一个强大工具,它提供了将大量数据一次...

    Excel导入导出数据库Excel批量导入导出数据库

    总之,Excel批量导入导出数据库是通过编程自动化数据管理的有效手段,尤其适用于需要频繁交换数据的场景。掌握这一技能能极大地提高工作效率,减少人为错误。通过Python的pandas和SQLAlchemy等库,我们可以轻松地...

    Java实现从excel中批量导入数据到数据库

    Java实现从excel中批量高效导入数据到数据库中,包括图片的导入存储,读取图片显示在jsp页面等,需要下载JspSmartUpload.jar和jxl.jar两个jar包,将两个包导入项目才能运行

    Excel导入数据库Excel快速批量导入数据库

    Excel导入数据,使用Interop.Excel.dll类库批量导入数据到数据库。服务器:输入服务器IP或者本地电脑全称,数据库:要导入数据表的库名,账号:数据库账号,密码:数据密码,点击页面保存配置可将页面配置保存以方便...

    一个批量导入数据库的工具

    本文将详细讨论批量导入数据库工具的相关知识点,帮助你更好地理解和应用这种工具。 首先,批量导入数据库工具是一种专门设计用于快速、高效地将大量数据一次性输入到数据库中的软件工具。它通常具有用户友好的界面...

    springboot实现将Excel导入数据库

    在这个场景下,我们将探讨如何利用Spring Boot结合MyBatis实现将Excel数据导入到数据库的功能。 首先,我们需要了解Spring Boot的核心组件之一——MyBatis。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储...

    excel数据导入数据库

    在IT行业中,Excel数据导入数据库是一项常见的任务,特别是在数据分析、报表制作或系统集成等领域。Excel作为数据处理的便捷工具,其灵活的格式和强大的计算功能使得很多用户习惯于在Excel中整理数据。然而,当数据...

    C# Excel导入数据库

    ### C# 中 Excel 导入数据库的技术实现 在软件开发领域,特别是在企业级应用中,经常需要处理大量的数据,而 Excel 文件作为一种常见的数据存储格式,其数据导入到数据库中的需求非常普遍。本篇文章将深入探讨如何...

    批量导入Excel数据到数据库

    ### 批量导入Excel数据到数据库:关键技术与实践 在企业级应用开发中,数据迁移、数据整合或数据处理往往需要将Excel数据批量导入到数据库中。本文将深入解析一个具体的实现方法,该方法利用了.NET框架下的`...

    EXCEL简单导入数据库

    "EXCEL简单导入数据库"这个标题所指的知识点主要涉及如何使用编程手段将Excel文件的数据批量导入到数据库中。下面我们将详细探讨这个过程。 首先,我们需要了解Excel文件的结构。Excel文件本质上是一种表格数据格式...

Global site tag (gtag.js) - Google Analytics