JAVA批量上传下载Excel_如何实现批量上传----------Java解析excel
一、引子
在web平台开发中仅经常会遇到一下需要批量的问题,通常得做法是使用excel上传,下面主要介绍一下在实际开发中到的实例。
二、准备工作
1、需要导入的jar包(主要用到poi包)
(1)poi-3.14.jar
(2)poi-ooxml-3.14.jar
(3)poi-ooxml-schemas-3.14.jar
(4)xmlbeans-2.6.0.jar
2、主要的API
(1)import org.apache.poi.ss.usermodel.Workbook,对应Excel文档;
(2)import org.apache.poi.hssf.usermodel.HSSFWorkbook,对应xls格式的Excel文档;
(3)import org.apache.poi.xssf.usermodel.XSSFWorkbook,对应xlsx格式的Excel文档;
(4)import org.apache.poi.ss.usermodel.Sheet,对应Excel文档中的一个sheet;
(5)import org.apache.poi.ss.usermodel.Row,对应一个sheet中的一行;
(6)import org.apache.poi.ss.usermodel.Cell,对应一个单元格。
三、上代码
excel格式:
代码:
1 packagetext;2
3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.InputStream;6 importjava.util.ArrayList;7 importjava.util.HashMap;8 importjava.util.LinkedHashMap;9 importjava.util.List;10 importjava.util.Map;11
12 importorg.apache.poi.hssf.usermodel.HSSFWorkbook;13 importorg.apache.poi.ss.usermodel.Cell;14 importorg.apache.poi.ss.usermodel.Row;15 importorg.apache.poi.ss.usermodel.Sheet;16 importorg.apache.poi.ss.usermodel.Workbook;17 importorg.apache.poi.xssf.usermodel.XSSFWorkbook;18
19 public classExcelSolution {20 public static voidmain(String[] args) {21 String filePath = "E:\\XXXXupload\\地点.xlsx";22 List> resultList =ExcelUtil(filePath);23 for(Map map : resultList) {24 System.out.println(map);25 }26 }27 public static List>ExcelUtil(String filePath){28 ArrayList> reList = new ArrayList>();29 File file = newFile(filePath);30 Workbook wb=null;31 if(file.exists() &&file.isFile()){32 try{33 if(filePath.toLowerCase().endsWith(".xls")){34 wb = new HSSFWorkbook(newFileInputStream(file));35 }else if (filePath.toLowerCase().endsWith(".xlsx")) {36 wb = new XSSFWorkbook(newFileInputStream(file));37 }38 Sheet sheet =wb.getSheetAt(0);39 int rowNum = sheet.getPhysicalNumberOfRows(); //获取行数
40 if (rowNum >1) {41 for (int i = 1; i < rowNum; i++) {42 Map map = new HashMap();43 Row row =sheet.getRow(i);44 if (row!=null) {45 //第一列:省份
46 Cell cell0 = sheet.getRow(i).getCell(0);47 if(cell0 != null && !"".equals(cell0)){48 String Name =(String) cell0.getStringCellValue().trim();49 map.put("name", Name);50 }51 Cell cell1 = sheet.getRow(i).getCell(1);52 if(cell1 != null && !"".equals(cell1)){53 String provinceName =(String)cell1.getStringCellValue().trim();54 map.put("provinceName", provinceName);55 }56 Cell cell2 = sheet.getRow(i).getCell(2);57 if(cell0 != null && !"".equals(cell2)){58 String cityName =(String)cell2.getStringCellValue().trim();59 map.put("cityname", cityName);60 }61
62 reList.add(map);63 }64
65 }66
67 }68 } catch(Exception e) {69 System.out.println("************ 解析EXCEL失败 ************");70 e.printStackTrace();71 return null;72 }73 }74 returnreList;75 }76 }
输出:
五、遇到问题及解决
1、报错:
原因: 当导包不一致时会出现问题。
2.代码错误
1 int rowNum = sheet.getPhysicalNumberOfRows(); //获取行数
2 if (rowNum >1) {3 Map map = new HashMap();//出现在错误的行,一个new,存储地址是一样的
4 for (int i = 1; i < rowNum; i++) {5 Row row =sheet.getRow(i);6 if (row!=null) {7 //第一列:省份
8 Cell cell0 = sheet.getRow(i).getCell(0);9 if(cell0 != null && !"".equals(cell0)){10 String Name =(String) cell0.getStringCellValue().trim();11 map.put("name", Name);12 }13
14 reList.add(map);15 }16
17 }18
19 }
错误结果:
JAVA批量上传下载Excel_如何实现批量上传----------Java解析excel相关推荐
- java图片上传下载_java实现文件的上传和下载
1. servlet 如何实现文件的上传和下载? 1.1上传文件 参考自:http://blog.csdn.net/hzc543806053/article/details/7524491 通过前台选 ...
- java断点上传下载_java实现多线程断点续传,上传下载 分享
程序采用的ftp工具, apache 的 commons-net-ftp-ftpclient package com.ftp; import java.io.File; import java.io. ...
- springboot上传下载文件(4)--上传下载工具类(已封装)
因为在做毕设,发现之前的搭建ftp文件服务器,通过ftp协议无法操作虚拟机临时文件,又因为ftp文件服务器搭建的比较麻烦:而 hadoop的HDFS虽然可以实现,但我这里用不到那么复杂的:所以我封装了 ...
- java web pdf迅雷下载文件_javaWeb实现文件上传及下载.pdf
jjaavvaaWWeebb实实现现文文件件上上传传与与下下载载 文件上传概述 实现web开发中的文件上传功能,需完成如下二步操作: 在web页面中添加上传输入项 在servlet 中读取上传文件的数 ...
- php dw文件上传下载,使用PHP实现文件上传
这里使用PHP实现文件的上传,由在浏览器这边选择文件,上传到服务器.其中,在上传文件中,考虑到对上传文件大小的限制.类型限制等问题.(当然可以根据我们需要修改对上传的文件的限制,而一般而言php自身也 ...
- java struts2 excel上传_文件上传下载——通过struts的FormFile上传单个excel文件
通过struts的FormFile上传单个excel文件 思路: 1.通过struts的FormFile获取File(这个文件的路径是"客户端的选择的路径地址") 2.将客户端的文 ...
- JSP 文件上传下载系列之一[基本方式上传文件]
前言 在jsp的web项目中,很有可能会使用文件上传的功能. 把一个本地的文件上传到web 服务器的某个路径下. 对于java 来说, 实现这样功能的开源组件有很多, 比如较常用的commons-fi ...
- linux 上传下载工具有哪些,Linux上传下载工具
远程连接Linux(如:Xshell.SecrueCRT),把需要上传文件和下载文件到Linux.使用下面几种方法都可以实现: 一.首先确定Linux服务器安装了lrzsz,如果没安装进行安装:yum ...
- 服务器如何下载百度网盘文件?Linux服务器如何在百度网盘中连接、上传下载;在Linux服务器上下载百度云盘中的资料
前言 百度云提供Python包bypy进行远程服务器的对接然后下载: https://github.com/houtianze/bypy 可以通过pip直接下载,授权本人的百度云账号后,就可以直接使L ...
最新文章
- C++迪杰斯特拉算法求最短路径
- 3.2.1 造成误差的原因分析
- (转)Android SharedPreferences的使用
- 2 shell 锂基脂_壬二酸和癸二酸制备的复合锂基脂到底有那些差别!
- android 一个字符串分两行显示_重新梳理Android权限管理
- axure实现复选框全选_AxureRP8实战手册-案例73(全选与取消全选效果)
- fatal error C1010: unexpected end of file while looking for precompiled head
- 结合MSDN理解windows service 服务安装的三个类。
- about semget
- ehcache springboot_Spring Boot 入门示例合集(附源代码)
- 使用Python+md5删除本地重复(同一张不重名)的照片
- 编辑框CEdit自动换行简单设置
- apache maven安装教程
- 中国Linux杰出人物
- java内置监视管理控制台
- spring boot拦截器 过滤器
- 人工智能几行代码实现换脸
- 解决C3P0又出現一個問題,如下的Exception:
- c语言特征码搜索,[学习笔记]通过各语言特征码寻找按钮事件
- 计算机没法安装打印程序,无法安装打印机怎么办 无法安装打印机解决方法【图文教程】...
热门文章
- 科研文献|季节变化是流域尺度上土壤抗性变化的主要驱动因素
- 在线作图|在线做协惯量分析(CoIA)
- Pandas批量删除dataframe列名中的后缀实战:使用rstrip函数批量删除列名中的后缀(suffix)、使用replace函数批量删除列名中的后缀(suffix)
- R语言使用ggplot2同时可视化dataframe的多个数据列实战:多个数据列可视化在同一个图中、多个数据列可视化在多个图中(纵向多个子图)
- ImportError: cannot import name ‘DtypeArg‘ from ‘pandas
- KeyError: “None of [Int64Index([...],\n dtype=‘int64‘, length=739)] are in the [columns]“
- R语言dplyr包all_equal函数检查多个dataframe是否相同实战
- plotly可视化绘制多图(multiplot)
- Python进行时间序列平稳检验ADFtest(Augmented Dickey-Fuller Unit Root Test)
- 句法分析常用算法框架以及NLPIR、Dependency Viwer