导入解析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(

url:’xx.do’,

dataType:’json’,

onSubmit:function(){return true;},//return false则会阻止表单提交

success:function(data){

//成功后的回调函数

}

);

Controller:

处理请求的方法参数用(MultipartFile uploadFile)类型接收

解析excel内容步骤:

  1. 通过传过来的uploadFile拿到流:

a)         ImputStream is = uploadFile.getInputStraam();

  1. 创建poiSysteam:

    fs = new POIFSFileSystem(is);

  1. 创建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的标题

  1. 得到一行里的某个单元格:

a)         HSSFCell cell = row.getCell(0);

b)         通过HSSFCell  单元格类型拿到单元格的数据

  1. 获取单元格的type: type = cell.getCellType();
  2. HSSFCell.CELL_TYPE_FORMUL数字类型:cell.getNumericCellValue();
  3. HSSFCell.CELL_TYPE_STRING:类型cell.getRichStringCellValue();
  4. HSSFCell.CELL_TYPE_FORMULA:类型

If(HSSFDateUtil.isCellDateFormatted(cell)){

Date date = cell.getDateCellValue();

}

  1. 身份证号避免科学计数法:

    DecimalFormat df = new DecimalFormat("0");

    cellvalue = df.format(cell.getNumericCellValue());

  1.     如果cell==null 的话,就给一个’’空字符串给他

7. 每一行的数据,可以自己定义一个类来保存,类中的字段于行里面的每一列对应

也可以用一个Map<Integer,String>-à <行号,行里面的内容>

二.   下载项目中的资源

  1. 方式一:

<a href='/res/excel/广东省补贴金额表.xls'>下载excel文档模板:</a>

  1. 方式二:

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小结的更多相关文章

  1. EasyPOI导入导出Excel

    EasyPOI工具可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 导入maven依赖 <dependency> <group ...

  2. oracle xmltype导入并解析Excel数据--前言

    通常,很多的时候,我们需要导入Excel数据到系统中,但是Excel数据需要我们去各种校验,比如身份证校验,手机号码校验等等. 校验失败的数据,提供Excel导出错误原因,提示给用户. 如此,如果校验 ...

  3. nodejs:导出Excel和解析导入的Excel

    用的是koa2框架,但好好处理一下,用express框架也是可以的.导出的Excel是xlsx的格式,解析导入Excel的有xlsx和csv格式.通常导入Excel是要上传的,然后获取文件的路径,这里 ...

  4. POI完美解析Excel数据到对象集合中(可用于将EXCEL数据导入到数据库)

    实现思路: 1.获取WorkBook对象,在这里使用WorkbookFactory.create(is); // 这种方式解析Excel.2003/2007/2010都没问题: 2.对行数据进行解析 ...

  5. C#用Infragistics 导入导出Excel(一)

    最近项目中有数据的导入导出Excel的需求,这里做简单整理. 公司用的是Infragistics的产品,付费,不需要本地安装Office. 有需要的朋友可以下载 Infragistics.2013.2 ...

  6. Java基于注解和反射导入导出Excel

    代码地址如下:http://www.demodashi.com/demo/11995.html 1. 构建项目 使用Spring Boot快速构建一个Web工程,并导入与操作Excel相关的POI包以 ...

  7. C#用Infragistics 导入导出Excel

    最近项目中有数据的导入导出Excel的需求,这里做简单整理. 公司用的是Infragistics的产品,付费,不需要本地安装Office. 有需要的朋友可以下载 Infragistics.2013.2 ...

  8. java POI 解析excel 2003和2007 直接转为List<Map> 返回

    1.POI 官网下载jar包,3.5以上 2.项目导入jar包 3.参数:String数组--对应的excel列名对应的KEY,File  excel文件,sheetNumber ---excel的s ...

  9. 用jxl解析excel内容

    需要导入jxl.jar 下方表格为excel中内容: 序号 姓名 性别 生日 地址 1 测试1 男 1990-1-1 北京朝阳区 2 测试2 女 1998-2-2 北京海淀 3 测试3 男 1999- ...

随机推荐

  1. HDU 1556.Color the ball-差分数组-备忘

    备忘. 差分数组: 区间更新查询有很多方法,线段树.树状数组等都可以.如果为离线查询,就可以考虑使用差分数组. 假设对于区间[l,r]的每个数都加1,我们用一个数组a来记录,a[l]+=1;a[r+1 ...

  2. Web CI过程中的Security解决方案

    http://www.infoq.com/cn/articles/WebScan-CI 一. 当前Web应用安全现状 随着中国互联网金融的爆发和繁荣,Web应用在其中扮演的地位也越来越重要,比如Web ...

  3. c程序设计语言 导言

    重在实践!! 1-10 P13 #include <stdio.h> int main() { int c; while((c = getchar()) != EOF) { ; if (c ...

  4. Codechef ForbiddenSum

    Mike likes to invent new functions. The latest one he has invented is called ForbiddenSum. Let's con ...

  5. 【线段树】bzoj3922 Karin的弹幕

    设置一个值K. d<=K:建立多组线段树:d>K:暴力. 最优时间复杂度的伪计算: O(n*K*logn(建树)+m*logn(询问类型1)+m*n/K(询问类型2)+m*K*logn(修 ...

  6. 5.3类集(java学习笔记)集合的输出

    一.集合的输出 迭代输出:Iteratror接口 在输出集合时,最标准的方法是使用迭代器迭代输出. 1,List中的迭代器. Iterator中包含三个方法: hasNex()t判断集合内是否有元素存 ...

  7. Java高级架构师(一)第17节:X-gen生成所需的DAO部分模板

  8. iOS数据库操作(使用FMDB)

    iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...

  9. delphi报警声音 Beep、MessageBeep 和 Windows.Beep

      转自:http://blog.csdn.net/yunqian09/article/details/5554527 我的办法,增加一个timer 设置间隔100ms,通过timer的使能否,控制报 ...

  10. REST和SOAP区别

     转载于: http://blog.csdn.net/idafish/article/details/6308916 REST似乎在一夜间兴起了,这可能引起一些争议,反对者可以说REST是WEB诞生之 ...