第一步:
/**
* 得到导入的excel数据并进行判断,不允许有重复的身份证号
*
* @param filePath
* 上传的文件的路径
* @param tableName
* 导入数据库的表名
*/
public List excelImport(String filePath, String tableName,
String[] tableColumm) {
// 得到excel文件
File file = new File(filePath);
List list = new ArrayList();
try {
Workbook book = Workbook.getWorkbook(file);
// 得到工作簿中的第一个表索引即为excel下的sheet1,sheet2,sheet3...
Sheet sheet = book.getSheet(0);
list = excelSj(sheet, tableName, tableColumm);
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
第二步:
/**
* 导入excel表数据
*
* @param sheet
* 单元表
* @param tableName
* 导入的数据库表名
*/
public List excelSj(Sheet sheet, String tableName, String[] tableColumm) {
int rows = sheet.getRows();
List list = new ArrayList();
for (int i = 1; i < rows; i++) {
Cell[] cells = sheet.getRow(i);
if (cells.length == 0) {
continue;
} else {
// 转换excel中的数据
String[] strs = changeCells(cells, tableColumm);
// 验证excel里的内容(身份证号的位数和身份证号不允许重复)
Map map = validateCells(strs);
if (!map.isEmpty()) {
// 如果map为空则执行插入操作
addData(tableName, tableColumm, strs);
} else {
list.add(map);
}
}
}
return list;
}
第三步:
// 转换excel中的数据
public String[] changeCells(Cell[] cells, String[] tableColumm) {
int colummLength = tableColumm.length;
String[] strs = new String[colummLength];
for (int i = 0; i < cells.length; i++) {
// 看看cell为空时怎么显示的
String str = cells[i].getContents();
if (str == null || "''".equals(str)) {
strs[i] = null;
} else {
strs[i] = cells[i].getContents().trim();
}
}
return strs;
}
第四步:
// 验证excel里的内容(身份证号的位数和身份证号不允许重复)
public Map validateCells(String[] strs) {
Map map = new HashMap();
// 暂时这里写死了,实际长度为2位
if (strs[0] == null || "".equals(strs[0])) {
map.put(strs[0], strs[1]);
}
if (strs[0] != null && !"".equals(strs[0])) {
if (strs[1] == null || "".equals(strs[1])) {
map.put(strs[0], strs[1]);
} else {
// 验证身份证号是否存在
boolean flag = validateCid(strs[1]);
if (!flag) {
map.put(strs[0], strs[1]);
}
}
}
return map;
}
第五步
// 做插入数据的操作
// tableColumm 数据库中的属性 strs excel表中转换的数据
public boolean addData(String tableName, String[] tableColumm, String[] strs) {
boolean flag = false;
String sql = "";
String atrrSql = "";
String excelSql = "";
String cols = "";
String values = "";
if (strs.length > 0) {
for (int i = 0; i < tableColumm.length - 1; i++) {
atrrSql += tableColumm[i] + ",";
excelSql += "'"+strs[i] +"'"+ ",";
}
cols = atrrSql + tableColumm[tableColumm.length - 1];
values = excelSql + "'"+strs[strs.length - 1]+"'";
sql = " insert into " + tableName + "(" + cols + ") values ("
+ values + ")";
}
try {
flag = baseDao.insert(sql);
} catch (ToolException e) {
e.printStackTrace();
}
return flag;
}
导入的包
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jxl.Cell;
import jxl.LabelCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import org.apache.commons.fileupload.FileItem;
import org.apache.log4j.Logger;
import sdzn.util.page.PageData;
import dao.jdbc.databasedao.IBaseDao;
import dao.jdbc.databasedao.ToolException;
分享到:
相关推荐
标题“利用jxl把excel中的数据导入数据库”指的是使用Java Excel API(jxl)这个库来读取Excel文件中的数据,并将这些数据批量地导入到关系型数据库中。这是一个常见的需求,特别是在处理大量结构化数据时,例如进行...
在IT行业中,处理和操作Excel数据是一项常见的任务,特别是在数据导入导出、分析和报告生成等领域。JXL是一个Java库,专门用于读取、写入和修改Excel文件,它为Java开发者提供了一种方便的方式来处理Excel数据,而...
使用了hibernate+struts1+spring + MYSql数据库 能够将数据库整张表的数据导出到excel...也能将excel 的数据导入 到空的 数据库表中。 能够保证导出的数据类型不变。 如要正确运行,必须先执行src 下的backup.sql 脚本
本篇文章将详细介绍如何利用JXL将数据库的数据导出到Excel。 首先,要使用JXL,你需要在项目中引入其依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
这个过程在处理大量数据时非常有用,比如将数据库中的数据导出到Excel,或者从Excel文件中导入数据到数据库。 在描述中提到的“博文链接:https://xgtxxxx.iteye.com/blog/1616979”,虽然具体链接无法访问,但可以...
导入时,通常会解析Excel文件,将数据映射到Java对象,然后存储在数据库中;导出时,从数据库获取数据,生成Excel文件。 为了更好地理解这两个库的用法,你可以查看提供的"Excel导入导出(jxl及Poi)工具类"压缩包中...
《基于JXL的Excel数据导入工具详解》 在IT行业中,数据处理是一项至关重要的任务,尤其是在数据分析、报表生成以及数据库管理等领域。Excel作为一款广泛使用的电子表格软件,因其强大的数据处理能力而备受青睐。...
Java实现从excel中批量高效导入数据到数据库中,包括图片的导入存储,读取图片显示在jsp页面等,需要下载JspSmartUpload.jar和jxl.jar两个jar包,将两个包导入项目才能运行
数据库内容导入到Excel是数据处理中的常见操作,特别是在数据分析、报表生成或数据迁移时。这里我们关注的是使用Java的一个库——jxl.jar,它允许我们方便地读取和写入Excel文件。jxl库是一个非常实用的工具,尤其...
在Java编程环境中,将Excel数据导入到数据库是一项常见的任务,特别是在数据处理和分析场景中。以下是对这个主题的详细说明: 1. **配置文件管理上传路径**: 在项目中,通常会创建一个配置文件(如`application....
总之,使用Java和jxl库可以方便地处理Excel文件,配合JDBC可以将数据导入MySQL数据库。通过合理设计和优化,这个过程可以高效且可靠地进行。在处理大量数据时,还要注意数据库性能和并发控制,确保系统的稳定性和...
7. **数据库导入**:文件“将excel的内容导入到数据库中.doc”很可能是详细的操作指南,描述了如何设置数据库连接,创建表结构,以及执行SQL语句来批量导入Excel数据。 在实际操作中,开发者通常会先使用Java库(如...
### JAVA实现Excel表数据导入ORACLE数据库 #### 知识点概述 本文将详细介绍如何使用Java编程语言将Excel表格中的数据导入到Oracle数据库中。这一过程涉及到的关键技术包括:使用JDBC连接Oracle数据库、通过ODBC...
在Java开发中,有时我们需要将数据库中的数据导出到Excel文件,或者从Excel文件导入数据到数据库。Apache POI是一个流行的API,专为处理Microsoft Office格式的文件,如Excel(.xlsx, .xls)。本教程将详细介绍如何...
在Java编程中,将Excel数据导入数据库是一项常见的任务,尤其在数据处理和分析场景中。以下是如何使用Java从Excel文件读取数据并将其存入数据库的详细步骤。 首先,我们需要一个能够读取Excel文件的库,例如...
综上所述,"JXL(Java操作Excel文件Oracle数据库)"是一个关于Java编程如何借助JXL库处理Excel文件并与Oracle数据库进行数据交换的主题。这个过程涵盖了文件I/O、数据库连接、JDBC操作以及数据处理等多个方面,对于...
在数据导入方面,使用了 JXL 技术来读取 Excel 文件中的数据,并将其存储到数据库中。在数据导出方面,使用了 POI 技术来将数据库中的数据写入到 Excel 文件中。 在实际应用中,Java Web 数据库数据与 Excel 表格...
这个项目的核心功能是允许用户通过前端界面提交数据,然后这些数据会被Struts2的Action处理,并使用POI或JXL库写入到指定的Excel文件中。为了实现这一功能,你需要理解以下几个关键知识点: 1. **Struts2 Action**:...