记录-java(jxl) Excel导入数据库
本内容主要包括(文件上传、excel2003数据导入数据库)excel导入数据库功能需要jxl jar包支持
下面是文件上传的前端测试代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="getAllByExcel" method="post" enctype="multipart/form-data">
<input type="file" name="file" >
<input type="submit" value="上传">
</form>
</body>
</html>
下面控制类用于excel文件上传到服务器
@SuppressWarnings("unchecked")
@RequestMapping(value="getAllByExcel" ,method = RequestMethod.POST)
public Object getAllByExcel(HttpServletRequest request,HttpServletResponse response, ModelMap model){
MultipartHttpServletRequest mulltipartRequest=(MultipartHttpServletRequest)request;
MultipartFile files=mulltipartRequest.getFile("file");
//得到上传服务器路径
String path=request.getSession().getServletContext().getRealPath("/WEB-INF/res/upload");
String fileName=files.getOriginalFilename();
try {
InputStream inputStream=files.getInputStream();
byte[] b = new byte[1048576];
int length = inputStream.read(b);
path += "\\" + fileName;
// 文件流写到服务器端
FileOutputStream outputStream = new FileOutputStream(path);
outputStream.write(b, 0, length);
inputStream.close();
outputStream.close();
//解析excel
List<Map<String, Object>> lists=CommonUtil.getAllExcel(path);
此功能需要导入jxl相关jar包,此方法提供excel路径返回List<Map<String, Object>>
//获取excel数据
public static List<Map<String, Object>> getAllExcel(String url){
List<Map<String, Object>> models=new ArrayList<Map<String, Object>>();
try { File filse=new File(url);
Workbook rwb=Workbook.getWorkbook(filse);
Sheet sheet=rwb.getSheet(0);
int clos=sheet.getColumns(); //获取列数
int rows=sheet.getRows();//获取行数 String[] heads =new String[clos];//保存所有的key值 for (int i = 0; i < rows; i++) {
Map<String, Object> mp =new HashMap<String,Object>();
for(int j=0;j<clos;j++){
if(i == 0 ){
heads[j] = sheet.getCell(j, i).getContents();//获取所有key值
}
else{
mp.put(heads[j], sheet.getCell(j, i).getContents());//获取每行value值
}
}
//如果map不为空则添加到list集合
if (!mp.isEmpty()) {
models.add(mp);
} }
} catch (Exception e) {
// TODO: handle exception
}
return models;
}
附加poi excel导入 (存在点问题 和上面思路类似 此处只是做个记录)
public static List<Map<String, Object>> readExcel(String url) throws IOException{
InputStream is=new FileInputStream(url);
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
List<Map<String, Object>> models=new ArrayList<Map<String, Object>>();
//循环Sheet
for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
HSSFSheet sheet=hssfWorkbook.getSheetAt(numSheet);
if(sheet==null){
continue;
}
HSSFSheet sheet=hssfWorkbook.getSheetAt(0);
int celNums=sheet.getRow(0).getPhysicalNumberOfCells();
String[] heads =new String[celNums];//保存所有的key值
for (int rowNum = 0; rowNum < sheet.getPhysicalNumberOfRows(); rowNum++) {
HSSFRow Row = sheet.getRow(rowNum);
Map<String, Object> mp =new HashMap<String,Object>();
for (int celNum = 0; celNum < celNums; celNum++) {
if(rowNum == 0 ){
heads[celNum] = Row.getCell(celNum).getStringCellValue();//获取所有key值
}
else{
mp.put(heads[celNum], Row.getCell(celNum).getStringCellValue());//获取每行value值
}
}
if (!mp.isEmpty()) {
models.add(mp);
}
}
}
return models;
}
记录-java(jxl) Excel导入数据库的更多相关文章
- java jxl excel 导入导出的 总结(建立超链接,以及目录sheet的索引)
最近项目要一个批量导出功能,而且要生成一个单独的sheet页,最后后面所有sheet的索引,并且可以点击进入连接.网上搜索了一下,找到一个方法,同时把相关的excel导入导出操作记录一下!以便以后使用 ...
- Hibernate+jxl+excel导入数据库
在将excel中的10w行数据导入数据库中时,总发生内存溢出,一开始使用的Spring+Hibernate;不知如何使用批处理,后来只是用Hibernate,10W行数据几分钟完成, 代码如下: pu ...
- Java实现Excel导入数据库,数据库中的数据导入到Excel
private static void executeMethod(JobExecutionContext arg0) throws Exception{ try { TContrastService ...
- Java实现将Excel导入数据库和从数据库中导出为Excel
实现的功能: 用Java实现从Excel导入数据库,如果存在就更新 将数据库中的数据导出为Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的 ...
- JAVA实现Excel导入/导出【转】
JAVA实现Excel导入/导出[转] POI的下载与安装 请到网站http://www.apache.org/dyn/closer.cgi/poi/右击超链接2.5.1.zip下载压缩包poi-bi ...
- excel 导入数据库 / SSIS 中 excel data source --64位excel 版本不支持-- solution
当本地安装的excel(2013版) 是64-bit时:出现的以下两种错误 解决: 1. excel 导入数据库 , 如果文件是2007则会出现:“The 'Microsoft.ACE.OLEDB.1 ...
- ASP.NET 将Excel导入数据库
将Excel导入数据库大致流程: Excel数据->DataSet->数据库 需要做的准备:1.FileUpload控件一个,按钮一个,如果需要即时显示那么GridView或DataGr ...
- Excel导入数据库百万级数据瞬间插入
Excel导入数据库百万级数据瞬间插入 百万级别,瞬间,有点吊哇
- Java中Excel导入功能实现、excel导入公共方法_POI -
这是一个思路希望能帮助到大家:如果大家有更好的解决方法希望分享出来 公司导入是这样做的 每个到导入的地方 @Override public List<DataImportMessage> ...
随机推荐
- HTML5中音频视频标签使用
HTML5中音频视频标签使用的最好方式 Html5中提供了<audio> <vedio>元素实现音频视频的引入播放 然而更好的方式
- 常见的开发语言(或IT技术)一览
Java. Android. iOS. Web前端. Python. .NET. PHP. C/C++. Linux 数据库技术
- Android实现蓝牙耳机连接
代码地址如下:http://www.demodashi.com/demo/13259.html 前言 讲讲android对于蓝牙耳机连接技术的实现 今天涉及的内容有: 流程讲解 新建广播Bluetoo ...
- prototype 用法
prototype使得js面向对象使用了prototype之后,使用它里面的属性或者函数 需要new出一个对象才可以使用.否则不使用prototype,直接向对象注入 function Person( ...
- Function.prototype.bind、call与apply方法简介
前言 前段时间面试遇见一题,题目内容大概是 function Parent() { this.prop = 'parent'; } Parent.prototype.get = function() ...
- 什么是SAAS模式网站?
说到“SAAS”,它的读法非常有趣,有“萨斯”,有“S.A.A.S”, 还有中文白话“啥事”的.不过,大多不熟悉的朋友第一反应可能是非典?,别误会,此“SAAS”非彼“SARS”,一字之差,但是意义完 ...
- unity, write/read txt file
在Assets下新建文件夹StreamingAssets.然后下面代码可在其中生成test.txt文件,并读写: using UnityEngine;using System.Collections; ...
- HDU - 1816 Get Luffy Out *(二分 + 2-SAT)
题目大意:有N串钥匙,M对锁.每串钥匙仅仅能选择当中一把.怎样选择,才干使开的锁达到最大(锁仅仅能按顺序一对一对开.仅仅要开了当中一个锁就可以) 解题思路:这题跟HDU - 3715 Go Deepe ...
- 怎样正确写网站title、keywords、description比较标准。
一.title title,也就是标题,是在浏览器上面显示出来的,方便用户了解这个页面的内容;特别是搜索引擎判断你网页内容的主要根据.搜索引擎就很大部分是依靠网站title来判断你网站是关于什么内容的 ...
- [转]成员函数指针与高性能的C++委托
原文(作者:Don Clugston):Member Function Pointers and the Fastest Possible C++ Delegates 译文(作者:周翔): 成员函数指 ...