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

解析Excel:

首先将File文件转成InputStream

InputStream in = file.getInputStream();

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

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

接下来获取工作表

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

获取行

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

获取单元格

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

获取单元格的内容

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

可以这样封装一下

 private static String getStringFormCell(HSSFCell cell) {
try {
return cell.getStringCellValue();
} catch (java.lang.IllegalStateException ex) {
return String.valueOf(cell.getNumericCellValue());
}
}

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

生成Excel:

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

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

创建excel

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

创建行

HSSFRow row = sheet.createRow(rowIndex);

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

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

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

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

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

response.setContentType("application/msexcel;charset=UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + new String((fileName+ ".xls").getBytes("GBK"), "ISO8859_1"));
OutputStream out = response.getOutputStream();
hssfWorkbook.write(out);
out.flush();
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. mysql删除重复数据只保留一条

    mysql删除重复数据只保留一条 新建一张测试表: CREATE TABLE `book` ( `id` char(32) NOT NULL DEFAULT '', `name` varchar(10 ...

  2. ant+eclipse知识点详解及使用案例

    ant的优点和地位就不再阐述,下面直接上知识点: 在java中使用xml文件开发,有以下基本语法 (1)project:每个ant程序有且只有一个此标签,而且是类似于html的总标签,有name,de ...

  3. python异常处理和断言

    http://blog.csdn.net/pipisorry/article/details/21841883 关于异常处理有必要么的讨论 最重要的问题是你在开发过程中隐藏了bug,如果当时你没加这个 ...

  4. 【翻译】Ext JS最新技巧——2014-9-10

    原文:Top Support Tips Greg Barry:删除网格单元格的焦点 在Ext JS 5.0.1,添加了一些与可访问性和支持ARIA有关的显著改进.虽然鼓励使用这些新增功能,但默认样式可 ...

  5. python判断类型:想知道一个对象(实例或者变量)是什么类型,什么结构的

    用type和isinstance 例子: ta={} ta['1']="a" ta={'2':"b"} ta['3']="c" #使用两个函 ...

  6. How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes

    How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes ...

  7. android TextView 垂直自动滚动字幕实现

    参考网上一些做法然后进行了修改, 首先继承TextView /** * VerticalScrollTextView.java * 版权所有(C) 2013 * 创建者:cuiran 2013-12- ...

  8. OpenCV——素描

    具体的算法原理可以参考: PS滤镜,素描算法 // define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_ ...

  9. C语言之linux内核实现最大公约数算法

    最大公约数算法,又称欧几里德算法,至今已有几千年的历史了.在我们开始学习C语言的时候最常用的算法就是辗转相除法,其实在linux内核中,内核也是使用这样的方法实现两数最大公约数的计算. 两个整数的最大 ...

  10. mybatis源码之MapperMethod

    /** * @author Clinton Begin * @author Eduardo Macarron * @author Lasse Voss */ //这个类是整个代理机制的核心类,对Sql ...