导入解析excel小结
导入解析excel小结
控制器例子:
一. 解析excel内容插入到数据库
Vm:
<form id=’form_file’ method=’post’ enctype=’multipart/form-data’>
<input id="uploadFile" type="file" name='uploadFile' />
<a href=’javascirpt(void0)’ onclick=’resolv();’>解析</a>
</form>
注意:解析按钮必须是<a>标签,如果换成button,用公司的表单提交则会出错:提示不是MultipartFile请求.
Js:$(‘#form_file’).bupform(
dataType:’json’,
onSubmit:function(){return true;},//return false则会阻止表单提交
success:function(data){
//成功后的回调函数
}
);
Controller:
处理请求的方法参数用(MultipartFile uploadFile)类型接收
解析excel内容步骤:
- 通过传过来的uploadFile拿到流:
a) ImputStream is = uploadFile.getInputStraam();
- 创建poiSysteam:
fs = new POIFSFileSystem(is);
- 创建workbook
a) wb = new HSSFWorkbook(fs);
1. sheet = wb.getSheetAt(0);//拿到excel的第一个sheet
2. 得到总行数:int rowNum = sheet.getLastRowNum();
3. 得到excel的某一行
a) HSSFRow row = sheet.getRow(0);//得到第0行 也就是excel的标题
- 得到一行里的某个单元格:
a) HSSFCell cell = row.getCell(0);
b) 通过HSSFCell 单元格类型拿到单元格的数据
- 获取单元格的type: type = cell.getCellType();
- HSSFCell.CELL_TYPE_FORMUL数字类型:cell.getNumericCellValue();
- HSSFCell.CELL_TYPE_STRING:类型cell.getRichStringCellValue();
- HSSFCell.CELL_TYPE_FORMULA:类型
If(HSSFDateUtil.isCellDateFormatted(cell)){
Date date = cell.getDateCellValue();
}
- 身份证号避免科学计数法:
DecimalFormat df = new DecimalFormat("0");
cellvalue = df.format(cell.getNumericCellValue());
- 如果cell==null 的话,就给一个’’空字符串给他
7. 每一行的数据,可以自己定义一个类来保存,类中的字段于行里面的每一列对应
也可以用一个Map<Integer,String>-à <行号,行里面的内容>
二. 下载项目中的资源
- 方式一:
<a href='/res/excel/广东省补贴金额表.xls'>下载excel文档模板:</a>
- 方式二:
Vm:<a href=’download.do?filename=广东省补贴金额表.xls’ ></a>
Controller:
处理请求的方法:
public void download(HttpServletResponse response,String filename){
a) 设置文件的MIME类型
response.setContentType(getServletContext().getMimeType(filename));
b) 拿到绝对路径
String fullFileName = “/res/excel/”+filename;
c) response.setHeader("Content-Disposition", "attachment; filename="+ new String(filename.getBytes("GBK"), "ISO8859-1"));
d) InputStream in = new FileInputStream(fullFileName);
e) BufferedInputStream bis = new BufferedInputStream(in);
f) BufferedOutputStreamout=new BufferedOutputStream(response.getOutputStream());
int b;
While(b=(bis.read()!=-1){
Out.write(b);
}
In.close();
Out.flush();
Out.close();
导入解析excel小结的更多相关文章
- EasyPOI导入导出Excel
EasyPOI工具可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 导入maven依赖 <dependency> <group ...
- oracle xmltype导入并解析Excel数据--前言
通常,很多的时候,我们需要导入Excel数据到系统中,但是Excel数据需要我们去各种校验,比如身份证校验,手机号码校验等等. 校验失败的数据,提供Excel导出错误原因,提示给用户. 如此,如果校验 ...
- nodejs:导出Excel和解析导入的Excel
用的是koa2框架,但好好处理一下,用express框架也是可以的.导出的Excel是xlsx的格式,解析导入Excel的有xlsx和csv格式.通常导入Excel是要上传的,然后获取文件的路径,这里 ...
- POI完美解析Excel数据到对象集合中(可用于将EXCEL数据导入到数据库)
实现思路: 1.获取WorkBook对象,在这里使用WorkbookFactory.create(is); // 这种方式解析Excel.2003/2007/2010都没问题: 2.对行数据进行解析 ...
- C#用Infragistics 导入导出Excel(一)
最近项目中有数据的导入导出Excel的需求,这里做简单整理. 公司用的是Infragistics的产品,付费,不需要本地安装Office. 有需要的朋友可以下载 Infragistics.2013.2 ...
- Java基于注解和反射导入导出Excel
代码地址如下:http://www.demodashi.com/demo/11995.html 1. 构建项目 使用Spring Boot快速构建一个Web工程,并导入与操作Excel相关的POI包以 ...
- C#用Infragistics 导入导出Excel
最近项目中有数据的导入导出Excel的需求,这里做简单整理. 公司用的是Infragistics的产品,付费,不需要本地安装Office. 有需要的朋友可以下载 Infragistics.2013.2 ...
- java POI 解析excel 2003和2007 直接转为List<Map> 返回
1.POI 官网下载jar包,3.5以上 2.项目导入jar包 3.参数:String数组--对应的excel列名对应的KEY,File excel文件,sheetNumber ---excel的s ...
- 用jxl解析excel内容
需要导入jxl.jar 下方表格为excel中内容: 序号 姓名 性别 生日 地址 1 测试1 男 1990-1-1 北京朝阳区 2 测试2 女 1998-2-2 北京海淀 3 测试3 男 1999- ...
随机推荐
- Codeforces 538 B. Quasi Binary
B. Quasi Binary time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- Dfs【p4306(bzoj 2208)】 [JSOI2010]连通数
Description 度量一个有向图恋情情况的一个指标是连通,指途中可达点对的个数. 下图的连通数是14 现在要你求出连通数 Input 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每 ...
- 洛谷——P2719 搞笑世界杯
题目背景 很久很久以后,一次世界杯,. 题目描述 随着世界杯小组赛的结束,法国,阿根廷等世界强队都纷纷被淘汰,让人心痛不已. 于是有人组织了一场搞笑世界杯,将这些被淘汰的强队重新组织起来和世界杯一同比 ...
- 1.3(学习笔记)JSP(Java Server Pages)内置对象
一.内置对象 内置对象又称内建对象.隐式对象,是由服务器自动创建实例化的, 用户在使用时不需要显示的创建,可直接使用. jsp内置对象名称,类型及作用域 Scope代表该内置对象的作用范围,page表 ...
- 5.5(java学习笔记)TreeSet和TreeMap
1.TreeMap TreeMap是可排序的Map类,使用这个类时,TreeMap会对存放的数据进行排序. 排序是根据key来排序的,排序规则是key实现comparable接口中的compareTo ...
- 数据挖掘经典算法——K-means算法
算法描述 K-means算法是一种被广泛使用的基于划分的聚类算法,目的是将n个对象会分成k个簇.算法的具体描述如下: 随机选取k个对象作为簇中心: Do 计算所有对象到这k个簇中心的距离,将距离最近的 ...
- Ubuntu安装“启动引导器”的设备选哪一项,选默认还是选/boot分区?
如果你要用Ubuntu的引导器代替Windows的引导器,就选 /dev/sda. 如果你要保留Windows的引导器,就选 /boot分区,但这样一来,装完Ubuntu重启后,只能启动Windows ...
- Oracle审计--AUD$占用空间较大处理方案
Oracle 11G以后,数据库默认是开启审计功能的,因此有时候我们忘记了关闭该功能导致SYSTEM表空间暴满,但由于关闭审计功能需要重启数据库,此类操作生产环境下是不允许的,因此我们需要找出哪类审计 ...
- Linux下使用Python操作MySQL数据库
安装mysql-python 1.下载mysql-python 打开终端: cd /usr/local sudo wget http://nchc.dl.sourceforge.net/sourcef ...
- Cobbler安装CentOS 7网卡命名修改
准备上线CentOS 7.x,在Cobbler上导入后,发现网卡名称变成了eno1这样的,好吧,那就添加两个内核参数上去,让它变回eth0. cobbler profile edit --name=C ...