对于Excel表格的解析、生成,java在 org.apache.poi 包中已经封装好了,使用比较简单。

解析Excel:

首先将File文件转成InputStream

  1. InputStream in = file.getInputStream();

然后创建表格对象,如果是2003版本的使用  HSSFWorkbook,2007以上的使用 XSSFWorkbook

  1. HSSFWorkbook workbook = new HSSFWorkbook(in);// 创建对Excel工作薄文件的引用

接下来获取工作表

  1. HSSFSheet sheet = workbook.getSheetAt();// 引用第一张工作表

获取行

  1. HSSFRow row = sheet.getRow();//获取第一行

获取单元格

  1. HSSFCell cell=row.getCell()//获取第一个单元格

获取单元格的内容

  1. String str=cell.getStringCellValue();//文本
  2. Double money=cell.getNumericCellValue();//数字

可以这样封装一下

  1. private static String getStringFormCell(HSSFCell cell) {
  2. try {
  3. return cell.getStringCellValue();
  4. } catch (java.lang.IllegalStateException ex) {
  5. return String.valueOf(cell.getNumericCellValue());
  6. }
  7. }

最后通过遍历行、列就能实现解析了

生成Excel:

生成excel要注意网页前端用ajax请求不能接收文件流,可以直接用超链接的方式直接GET调用后台方法,js的写法就是

  1. window.location.href=XXXXX //请求地址

创建excel

  1. HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
  2. HSSFSheet sheet = hssfWorkbook.createSheet(sheetName);//创建工作表

创建行

  1. HSSFRow row = sheet.createRow(rowIndex);

创建一个单元格的格式(可选)

  1. HSSFCellStyle style = hssfWorkbook.createCellStyle();
  2. style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式

创建一个单元格并设置格式、值

  1. HSSFCell cell = row.createCell(cellIndex);
  2. cell.setCellValue(cellValue);
  3. cell.setCellStyle(style);

最后设置请求参数并输出文件

  1. response.setContentType("application/msexcel;charset=UTF-8");
  2. response.addHeader("Content-Disposition","attachment;filename=" + new String((fileName+ ".xls").getBytes("GBK"), "ISO8859_1"));
  3. OutputStream out = response.getOutputStream();
  4. hssfWorkbook.write(out);
  5. out.flush();
  6. out.close();

java 操作Excel表格的更多相关文章

  1. 使用Java操作Excel表格

    目录 一.配置第三方库 二.使用Apache POI API 1. 打开Excel文件 2. 选择对应的sheet 3. Sheet接口的基本使用 3.1 获取开头行和结束行 3.2 获取Row对象 ...

  2. Java操作excel表格

    (1)Java读取excel表格 package com.songyan.excel; import java.io.File; import java.io.FileInputStream; imp ...

  3. Java——操作Excel表格,读取表格内容

    JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过 ...

  4. jxl的使用总结(java操作excel)

    jxl.jar是通过java操作excel表格的工具类库: jxl.jar包:链接:http://pan.baidu.com/s/1o8qFJHw 密码:5jyq 1:通过模拟实现创建一个表格,然后模 ...

  5. 【转载】jxl的使用总结(java操作excel)

    jxl.jar是通过java操作excel表格的工具类库: 链接:https://pan.baidu.com/s/1AAT_eA_Q47zFeQohap6eQg 提取码:777b 1:通过模拟实现创建 ...

  6. Java 操作 EXCEL

    今天帮朋友写了一段用来处理EXCEL内容的程序,在这里记录下自己的学习过程.主要是对EXCEL表格中的内容做分类和统计,使用计算机来做这种重复的机械性地工作再好不过了.首先,我们需要下载一个java操 ...

  7. JAVA操作Excel时文字自适应单元格的宽度设置方法

    使用JAVA操作Excel通常都使用JXL,方法很简单网上也有很多的教程,然后往往一些细节性的问题却导致我们这些Programmer苦恼不已.这两天帮一个朋友做一个Excel表格自动生成的小软件,就遇 ...

  8. java操作excel 工具类

    java操作excel 可参考https://blog.csdn.net/xunwei0303/article/details/53213130 直接上代码: 一.java生成excel文件: pac ...

  9. java实现excel表格导入数据库表

    导入excel就是一个上传excel文件,然后获取excel文件数据,然后处理数据并插入到数据库的过程 一.上传excel 前端jsp页面,我的是index.jsp 在页面中我自己加入了一个下载上传文 ...

随机推荐

  1. Dynamics CRM2013 编辑视图时弹出尚未保存所做的更改警示框

    CRM2013中当对视图进行自定义编辑时,总会弹出如下图所示的警示框,一般我们都会选择离开此页来保存我们所做的更改,显而易见的是这又是CRM2013的一个bug 在UR2 for  Dynamics ...

  2. Android进阶(八)Can't create handler inside thread that has not called Looper.prepare()

    Error:Can't create handler inside thread that has not called Looper.prepare() 原代码: //利用Handler消息传递机制 ...

  3. Uva - 1607 - Gates

    题目理解麻烦,估计提交量少(总共只有32个人...)也是因为题目比较麻烦,看起来像物理题,实际理解了还可以.整个电路的功能就4种,先判断x=0和x=1的输出是否相同,吐过相同,而整个电路是常熟,随便输 ...

  4. 使用DBMS_LOCK控制程序并发

    在调用并发的程序时,假设两个人同时提交了某一个并发请求,并且传入了同样的参数,假设在程序中使用了对状态的控制,例如在刚进入main函数的时候马上就将状态update了,那么其中某一个人就会查不到该条数 ...

  5. Android利用ViewPager仿微信主界面-android学习之旅(78)

    首先是介绍ViewPager这个控件 ,这个控件需要pagerAdapter作为容器来提供数据,同时pagerAdapter的数据源是View数组 效果图如下 部分代码如下,实现如下的方法 mPage ...

  6. java的hashcode(结合hashset讲解)

    equals()跟hashcode()都可以用来比较对象.hashcode通过不同对象有不同的散列码来比较两个对象. hashcode方法把对象放到一个对象容器进行查找,算法好坏直接影响容器的存取效率 ...

  7. H5学习之旅-H5与Php交互(12)

    1.首先介绍PHP开发环境的搭建 ,在Google搜apachefriends,会有xampp的下载链接,这个工具集成了apache的很多服务 2.搭建php的编辑环境,选取eclipse安装php插 ...

  8. rpcz VC2010 构建

    rpcz VC2010 构建 rpcz 是应用ZeroMQ和Protobuf开发的RPC. 见: https://github.com/reinferio/rpcz 及 https://code.go ...

  9. android中的回调

    1.引子 android中的回调最经典的就是点击事件设置监听(一般通过switch(v.getId()))这里写个最基本的 btn_rigister.setOnClickListener(new Vi ...

  10. 制药企业BI系统方案整体设计分享

    制药企业全面预算系统蓝图 全面掌控企业的各种业务活动,及时准确的展现它们的状况与趋势,评估其达成的效果.存在的问题与风险.支持数据的导入,多级上报等多种特色功能,同时通过统一的报表平台实现精细话的权限 ...