本内容主要包括(文件上传、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导入数据库的更多相关文章

  1. java jxl excel 导入导出的 总结(建立超链接,以及目录sheet的索引)

    最近项目要一个批量导出功能,而且要生成一个单独的sheet页,最后后面所有sheet的索引,并且可以点击进入连接.网上搜索了一下,找到一个方法,同时把相关的excel导入导出操作记录一下!以便以后使用 ...

  2. Hibernate+jxl+excel导入数据库

    在将excel中的10w行数据导入数据库中时,总发生内存溢出,一开始使用的Spring+Hibernate;不知如何使用批处理,后来只是用Hibernate,10W行数据几分钟完成, 代码如下: pu ...

  3. Java实现Excel导入数据库,数据库中的数据导入到Excel

    private static void executeMethod(JobExecutionContext arg0) throws Exception{ try { TContrastService ...

  4. Java实现将Excel导入数据库和从数据库中导出为Excel

    实现的功能: 用Java实现从Excel导入数据库,如果存在就更新 将数据库中的数据导出为Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的 ...

  5. JAVA实现Excel导入/导出【转】

    JAVA实现Excel导入/导出[转] POI的下载与安装 请到网站http://www.apache.org/dyn/closer.cgi/poi/右击超链接2.5.1.zip下载压缩包poi-bi ...

  6. excel 导入数据库 / SSIS 中 excel data source --64位excel 版本不支持-- solution

    当本地安装的excel(2013版) 是64-bit时:出现的以下两种错误 解决: 1. excel 导入数据库 , 如果文件是2007则会出现:“The 'Microsoft.ACE.OLEDB.1 ...

  7. ASP.NET 将Excel导入数据库

    将Excel导入数据库大致流程:  Excel数据->DataSet->数据库 需要做的准备:1.FileUpload控件一个,按钮一个,如果需要即时显示那么GridView或DataGr ...

  8. Excel导入数据库百万级数据瞬间插入

    Excel导入数据库百万级数据瞬间插入 百万级别,瞬间,有点吊哇

  9. Java中Excel导入功能实现、excel导入公共方法_POI -

    这是一个思路希望能帮助到大家:如果大家有更好的解决方法希望分享出来 公司导入是这样做的 每个到导入的地方 @Override public List<DataImportMessage> ...

随机推荐

  1. python challenge - map.py

    Hint: K->M    O->Q    E->G everybody thinks twice before solving this. g fmnc wms bgblr rpy ...

  2. MySQL学习总结(五)表数据查询

    查询数据记录,是指从数据库对象表中获取所要查询的数据记录,该操作可以说是数据最基本的操作之一,也是使用频率最高.最重要的数据操作. 1.单表数据记录查询 1.1.简单数据查询 SELECT field ...

  3. ping的原理以及ICMP

    ping 的原理:     ping 程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接.     ping 使用的是ICMP协议,它发送icmp回送请求消 ...

  4. Mac终端主题Peppermint

    Peppermint主题下载 下载地址:https://noahfrederick.com/log/lion-terminal-theme-peppermint 配置颜色: 1.写配置文件 vim ~ ...

  5. C语言 指向结构体变量的指针

    一个指向变量的指针表示的是占内存中起始位置 一个指向结构体的变量的指针表示的是这个结构体变量占内存中的起始位置,同样它也可以指向结构体变量数组 定义结构体变量的指针: //假设已有一个结构体名为Stu ...

  6. C++语言基础(2)-new和delete操作符

    在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数.如下所示: ); //分配10个int型的内存空间 free(p); //释放内存 在C++中,这两个函数仍然可以使 ...

  7. ssh-keygen配合ssh_config免密码登录VPS

    ssh-keygen配合ssh_config免密码登录VPS Posted by fiture / 2012年12月29日 / 「Ubuntu」「分享」 用过终端登录远程服务器或者VPS的童鞋都用过类 ...

  8. iPhone6 Plus、iPhone6、iPhone5S和之前版本真实分辨率

    以前总是嘲笑Android手机屏幕分辨率大小不一,碎片化严重,如今iPhone6发布,让iPhone的分辨率一下子增加到了四种.我们先来制作一张表格来对比说明一下: 以前总是嘲笑Android手机屏幕 ...

  9. scala 学习(三)——Array和ArrayBuffer

    ArrayBuffer:类型化数组 首先需要注意的是Array是定长数组,而ArrayBuffer是可变数组.下面是一个小例子,对数据进行便利和修改的操作.

  10. 配置HADOOP_HOME

    配置HADOOP_HOME export HADOOP_HOME=/usr/hadoop-1.2.0export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sb ...