导入解析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. Codeforces 538 B. Quasi Binary

    B. Quasi Binary   time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  2. Dfs【p4306(bzoj 2208)】 [JSOI2010]连通数

    Description 度量一个有向图恋情情况的一个指标是连通,指途中可达点对的个数. 下图的连通数是14 现在要你求出连通数 Input 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每 ...

  3. 洛谷——P2719 搞笑世界杯

    题目背景 很久很久以后,一次世界杯,. 题目描述 随着世界杯小组赛的结束,法国,阿根廷等世界强队都纷纷被淘汰,让人心痛不已. 于是有人组织了一场搞笑世界杯,将这些被淘汰的强队重新组织起来和世界杯一同比 ...

  4. 1.3(学习笔记)JSP(Java Server Pages)内置对象

    一.内置对象 内置对象又称内建对象.隐式对象,是由服务器自动创建实例化的, 用户在使用时不需要显示的创建,可直接使用. jsp内置对象名称,类型及作用域 Scope代表该内置对象的作用范围,page表 ...

  5. 5.5(java学习笔记)TreeSet和TreeMap

    1.TreeMap TreeMap是可排序的Map类,使用这个类时,TreeMap会对存放的数据进行排序. 排序是根据key来排序的,排序规则是key实现comparable接口中的compareTo ...

  6. 数据挖掘经典算法——K-means算法

    算法描述 K-means算法是一种被广泛使用的基于划分的聚类算法,目的是将n个对象会分成k个簇.算法的具体描述如下: 随机选取k个对象作为簇中心: Do 计算所有对象到这k个簇中心的距离,将距离最近的 ...

  7. Ubuntu安装“启动引导器”的设备选哪一项,选默认还是选/boot分区?

    如果你要用Ubuntu的引导器代替Windows的引导器,就选 /dev/sda. 如果你要保留Windows的引导器,就选 /boot分区,但这样一来,装完Ubuntu重启后,只能启动Windows ...

  8. Oracle审计--AUD$占用空间较大处理方案

    Oracle 11G以后,数据库默认是开启审计功能的,因此有时候我们忘记了关闭该功能导致SYSTEM表空间暴满,但由于关闭审计功能需要重启数据库,此类操作生产环境下是不允许的,因此我们需要找出哪类审计 ...

  9. Linux下使用Python操作MySQL数据库

    安装mysql-python 1.下载mysql-python 打开终端: cd /usr/local sudo wget http://nchc.dl.sourceforge.net/sourcef ...

  10. Cobbler安装CentOS 7网卡命名修改

    准备上线CentOS 7.x,在Cobbler上导入后,发现网卡名称变成了eno1这样的,好吧,那就添加两个内核参数上去,让它变回eth0. cobbler profile edit --name=C ...