来自http://hao0610.iteye.com/blog/1160678

使用poi来解析Excel的xls和xlsx。

解析xls:

  1. package xls;
  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import org.apache.poi.hssf.usermodel.HSSFCell;
  6. import org.apache.poi.hssf.usermodel.HSSFRow;
  7. import org.apache.poi.hssf.usermodel.HSSFSheet;
  8. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  9. public class XlsMain {
  10. public static void main( String[] args) throws IOException {
  11. XlsMain xlsMain = new XlsMain();
  12. xlsMain.readXls();
  13. }
  14. private void readXls() throws IOException{
  15. InputStream is = new FileInputStream( "D:\\excel\\xls_test2.xls");
  16. HSSFWorkbook hssfWorkbook = new HSSFWorkbook( is);
  17. // 循环工作表Sheet
  18. for(int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++){
  19. HSSFSheet hssfSheet = hssfWorkbook.getSheetAt( numSheet);
  20. if(hssfSheet == null){
  21. continue;
  22. }
  23. // 循环行Row
  24. for(int rowNum = 0; rowNum <= hssfSheet.getLastRowNum(); rowNum++){
  25. HSSFRow hssfRow = hssfSheet.getRow( rowNum);
  26. if(hssfRow == null){
  27. continue;
  28. }
  29. // 循环列Cell
  30. for(int cellNum = 0; cellNum <= hssfRow.getLastCellNum(); cellNum++){
  31. HSSFCell hssfCell = hssfRow.getCell( cellNum);
  32. if(hssfCell == null){
  33. continue;
  34. }
  35. System.out.print("    " + getValue( hssfCell));
  36. }
  37. System.out.println();
  38. }
  39. }
  40. }
  41. @SuppressWarnings("static-access")
  42. private String getValue(HSSFCell hssfCell){
  43. if(hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN){
  44. return String.valueOf( hssfCell.getBooleanCellValue());
  45. }else if(hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC){
  46. return String.valueOf( hssfCell.getNumericCellValue());
  47. }else{
  48. return String.valueOf( hssfCell.getStringCellValue());
  49. }
  50. }
  51. }

解析xlsx:

    1. package xlsx;
    2. import java.io.IOException;
    3. import org.apache.poi.xssf.usermodel.XSSFCell;
    4. import org.apache.poi.xssf.usermodel.XSSFRow;
    5. import org.apache.poi.xssf.usermodel.XSSFSheet;
    6. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    7. public class XlsxMain {
    8. public static void main( String[] args) throws IOException {
    9. XlsxMain xlsxMain = new XlsxMain();
    10. xlsxMain.readXlsx();
    11. }
    12. private void readXlsx() throws IOException{
    13. String fileName = "D:\\excel\\xlsx_test.xlsx";
    14. XSSFWorkbook xssfWorkbook = new XSSFWorkbook( fileName);
    15. // 循环工作表Sheet
    16. for(int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++){
    17. XSSFSheet xssfSheet = xssfWorkbook.getSheetAt( numSheet);
    18. if(xssfSheet == null){
    19. continue;
    20. }
    21. // 循环行Row
    22. for(int rowNum = 0; rowNum <= xssfSheet.getLastRowNum(); rowNum++ ){
    23. XSSFRow xssfRow = xssfSheet.getRow( rowNum);
    24. if(xssfRow == null){
    25. continue;
    26. }
    27. // 循环列Cell
    28. for(int cellNum = 0; cellNum <= xssfRow.getLastCellNum(); cellNum++){
    29. XSSFCell xssfCell = xssfRow.getCell( cellNum);
    30. if(xssfCell == null){
    31. continue;
    32. }
    33. System.out.print("   "+getValue(xssfCell));
    34. }
    35. System.out.println();
    36. }
    37. }
    38. }
    39. @SuppressWarnings("static-access")
    40. private String getValue(XSSFCell xssfCell){
    41. if(xssfCell.getCellType() == xssfCell.CELL_TYPE_BOOLEAN){
    42. return String.valueOf( xssfCell.getBooleanCellValue());
    43. }else if(xssfCell.getCellType() == xssfCell.CELL_TYPE_NUMERIC){
    44. return String.valueOf( xssfCell.getNumericCellValue());
    45. }else{
    46. return String.valueOf( xssfCell.getStringCellValue());
    47. }
    48. }
    49. }

java使用POI解析2007以上的Excel表格的更多相关文章

  1. java使用poi包将数据写入Excel表格

    1.Excel相关操作代码 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcept ...

  2. java的poi技术读,写Excel[2003-2007,2010]

    在上一篇blog:java的poi技术读取Excel[2003-2007,2010] 中介绍了关于java中的poi技术读取excel的相关操作 读取excel和MySQL相关: java的poi技术 ...

  3. java的poi技术读取和导入Excel实例

    本篇文章主要介绍了java的poi技术读取和导入Excel实例,报表输出是Java应用开发中经常涉及的内容,有需要的可以了解一下. 报表输出是Java应用开发中经常涉及的内容,而一般的报表往往缺乏通用 ...

  4. Java操作Jxl实现导出数据生成Excel表格数据文件

    实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...

  5. java 使用 poi 解析excel

    背景: web应用经常需要上传文件,有时候需要解析出excel中的数据,如果excel的格式没有问题,那就可以直接解析数据入库. 工具选择: 目前jxl和poi可以解析excel,jxl很早就停止维护 ...

  6. Java使用POI解析Excel表格

    概述 Excel表格是常用的数据存储工具,项目中经常会遇到导入Excel和导出Excel的功能. 常见的Excel格式有xls和xlsx.07版本以后主要以基于XML的压缩格式作为默认文件格式xlsx ...

  7. java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式和其他常见Excel中数据转换问题

    当使用POI处理excel的时候,遇到了比较长的数字,虽然excel里面设置该单元格是文本类型的,但是POI的cell的类型就会变成数字类型. 而且无论数字是否小数,使用cell.getNumberi ...

  8. 【Javaweb】poi实现通过上传excel表格批量导入数据到数据库

    1.导入poi相关jar包 对于只操作2003及以前版本的excel,只需要导入poi-XXX.jar ,如果还需要对2007及以后版本进行操作,则需要导入 poi-ooxml-XXX.jar poi ...

  9. java中poi解析excel(兼容07版本以上及以下:.xls和.xlsx格式)

    package com.genersoft.cbms.ysbz.ExcelDr.cmd; import com.genersoft.cbms.ysbz.ExcelDr.dao.ExcelDrDao; ...

随机推荐

  1. python基础类知识~pymysql封装类

    一简介:咱们来介绍下 DBA常用的几个类 二 具体代码 #!/usr/bin/python3import pymysqlimport sysclass DBHelper: def __init__(s ...

  2. proxysql 系列 ~ 读写分离核心功能

    一 相关表介绍 1 mysql_user 列表配置    1 username && password 账号密码    2 default_hostgroup 默认的组ID2 mysq ...

  3. C#解析"a=1&b=2&c=3"字符串,微信支付返回字符串,替换<br>为&

    原文来自: http://www.mzwu.com/article.asp?id=2802 C#可用: 若该字符串是使用Http Get发送,url?a=1&b=2&c=3,使用下边代 ...

  4. Linux网络底层收发探究【转】

    转自:https://blog.csdn.net/davion_zhang/article/details/51536807 本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  5. sms-tools的使用

    先前只有python36的版本,在使用sms-tools的时候遇到了这样那样的问题,现统一记录一下: 运行环境说明: 1. 需要c++编译器,为了避免安装vs,选择了vcforpython27 2.  ...

  6. 使用 Charles 抓取 App 网络请求

    最近开发App的时候需要用到大量其他应用的数据,但接口不公开,所以想到了抓取.差不多要读到5W的用户数据,采用的是找到数据接口,然后不停发请求的方式.用到的抓取工具是Charles,本文讲解的应用是W ...

  7. python3+selenium入门04-元素定位

    我们在对浏览界面做操作时,比如点击按钮,搜索框输入内容.都需要把鼠标挪过去,然后再点击,或者输入内容.在selenium操作时也是一样的.需要先对元素进行定位,然后才能进行操作.可以借助浏览器的开发者 ...

  8. C# 基础之string[,] 和string[][]

    昨天做项目时碰到一个问题,后台返回一张关系表,里面就两个字段,简化为A,B字段(1:N的关系),一个A对应多个B字段. 由于对于string[,] 和string[][] 的认识不到位,刚开始搞错了数 ...

  9. NodeJS基础教程

    关于 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识.本书绝不是一本“Hello World”的教程. 状态 你正在阅读的已经是本书的最终版. ...

  10. 《Windows核心编程》读书笔记 上

    [C++]<Windows核心编程>读书笔记 这篇笔记是我在读<Windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对 ...