java解析excel文件的方法

建立工程前需要导入POI包。POI相关jar包下载地址:http://poi.apache.org/download.html

1.解析.xlsx后缀名的的EXCEL文件:

package com.shuai.hello;  

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;  

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;  

public class ReadExcel {
  public static void main(String[] args) throws IOException {  

    //File file = new File("C:/Users.xlsx");
    InputStream stream = new FileInputStream("C:/Users.xlsx");  

    XSSFWorkbook xssfWorkbook = new XSSFWorkbook(stream);
    XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);  

    int rowstart = xssfSheet.getFirstRowNum();
    int rowEnd = xssfSheet.getLastRowNum();
    for(int i=rowstart;i<=rowEnd;i++)
    {
      XSSFRow row = xssfSheet.getRow(i);
      if(null == row) continue;
      int cellStart = row.getFirstCellNum();
      int cellEnd = row.getLastCellNum();  

      for(int k=cellStart;k<=cellEnd;k++)
      {
        XSSFCell cell = row.getCell(k);
        if(null==cell) continue;  

        switch (cell.getCellType())
        {
          case HSSFCell.CELL_TYPE_NUMERIC: // 数字
            System.out.print(cell.getNumericCellValue()
                + "\t");
            break;
          case HSSFCell.CELL_TYPE_STRING: // 字符串
            System.out.print(cell.getStringCellValue()
                + "\t");
            break;
          case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
            System.out.println(cell.getBooleanCellValue()
                + "\t");
            break;
          case HSSFCell.CELL_TYPE_FORMULA: // 公式
            System.out.print(cell.getCellFormula() + "\t");
            break;
          case HSSFCell.CELL_TYPE_BLANK: // 空值
            System.out.println(" ");
            break;
          case HSSFCell.CELL_TYPE_ERROR: // 故障
            System.out.println(" ");
            break;
          default:
            System.out.print("未知类型  ");
            break;
        }  

      }
      System.out.print("\n");
    }
  }
}  

/*String fileType = filePath.substring(filePath.lastIndexOf(".") + 1, filePath.length());
InputStream stream = new FileInputStream(filePath);
Workbook wb = null;
if (fileType.equals("xls")) {
 wb = new HSSFWorkbook(stream);
} else if (fileType.equals("xlsx")) {
 wb = new XSSFWorkbook(stream);
} else {
 System.out.println("您输入的excel格式不正确");
}*/

2.解析后缀为.xls的EXCEL文件:

package com.shuai.hello;  

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;  

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;  

public class ReadXls {
  public static void main(String[] args) throws IOException, IOException {
    File file = new File("C:/Users/dengta/Desktop/ok1.xls");
    POIFSFileSystem poifsFileSystem = new POIFSFileSystem(new FileInputStream(file));
    HSSFWorkbook hssfWorkbook = new HSSFWorkbook(poifsFileSystem);
    HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);  

    int rowstart = hssfSheet.getFirstRowNum();
    int rowEnd = hssfSheet.getLastRowNum();
    for(int i=rowstart;i<=rowEnd;i++)
    {
      HSSFRow row = hssfSheet.getRow(i);
      if(null == row) continue;
      int cellStart = row.getFirstCellNum();
      int cellEnd = row.getLastCellNum();  

      for(int k=cellStart;k<=cellEnd;k++)
      {
        HSSFCell cell = row.getCell(k);
        if(null==cell) continue;
        //System.out.print("" + k + " ");
        //System.out.print("type:"+cell.getCellType());  

        switch (cell.getCellType())
        {
          case HSSFCell.CELL_TYPE_NUMERIC: // 数字
                  System.out.print(cell.getNumericCellValue()
                + "  ");
            break;
          case HSSFCell.CELL_TYPE_STRING: // 字符串
            System.out.print(cell.getStringCellValue()
                + "  ");
            break;
          case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
            System.out.println(cell.getBooleanCellValue()
                + "  ");
            break;
          case HSSFCell.CELL_TYPE_FORMULA: // 公式
            System.out.print(cell.getCellFormula() + "  ");
            break;
          case HSSFCell.CELL_TYPE_BLANK: // 空值
            System.out.println(" ");
            break;
          case HSSFCell.CELL_TYPE_ERROR: // 故障
            System.out.println(" ");
            break;
          default:
            System.out.print("未知类型  ");
            break;
        }  

      }
      System.out.print("\n");
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java实现excel和txt文件互转

    话不多说,请看代码: import java.io.*; import jxl.*; import jxl.write.*; //用java将txt数据导入excel public class CreateXLS { public static void main(String args[]) { try { //打开文件 WritableWorkbook book= Workbook.createWorkbook(new File("测试.xls")); //生成名为"第一

  • java 文件大数据Excel下载实例代码

    java 文件大数据Excel下载实例代码 excel可以用xml表示.故可以以此来实现边写边下载文件 package com.tydic.qop.controller; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.I

  • java使用POI操作excel文件

    一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Excel 95及以后的版本,即可操作后缀为 .xls 和 .xlsx两种格式的excel. POI全称 Poor Obfuscation Implementation,直译为"可怜的模糊实现",利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能.官网:htt

  • Java实现把excel xls中数据转为可直接插入数据库的sql文件

    我的一贯风格,代码说明一切.. 废话不多说了,直接给大家贴代码了,具体代码如下所示: package Tools; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; im

  • Java解析Excel文件并把数据存入数据库

    前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中.花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致总报同一个错,最后在同学的帮助下顺利解决,下面我把自己用"POI"解析的方法总结出来供大家参考(我用的是SpingMVC和hibernate框架). 1.web.xml中的配置文件 web.xml中的配置文件就按照这种方式写,只需要把"application.xml"换

  • Java Web使用POI导出Excel的方法详解

    本文实例讲述了Java Web使用POI导出Excel的方法.分享给大家供大家参考,具体如下: 采用Spring mvc架构: Controller层代码如下 @Controller public class StudentExportController{ @Autowired private StudentExportService studentExportService; @RequestMapping(value = "/excel/export") public void

  • JavaWeb使用POI操作Excel文件实例

    1.为项目添加POI POI官网链接 点进去之后下载(上边的是编译好的类,下边的是源代码) 解压文件夹,把下面三个文件复制到WebComtent>WEB-INF>lib文件夹下 再把这三个文件复制到Tomcat的lib文件夹下,否则Tomcat会因为找不到类而报错(这个地方郁闷了一上午) 读取".xls"格式使用  import org.apache.poi.hssf.usermodel.*;包的内容,例如:HSSFWorkbook 读取".xlsx"格

  • python调用java模块SmartXLS和jpype修改excel文件的方法

    本文实例讲述了python调用java模块SmartXLS和jpype修改excel文件的方法.分享给大家供大家参考.具体实现方法如下: # -*- coding: utf8 -*- """ 使用java的模块SmartXLS和jpype修改excel 和xlrd,xlwt不同的是它可以生成和保持图表 """ from __future__ import print_function, division import os import jpyp

  • java导出大批量(百万以上)数据的excel文件

    本文实例为大家分享了java导出百万以上数据的excel文件,供大家参考,具体内容如下 1.传统的导出方式会消耗大量的内存,2003每个sheet页最多65536条数据,2007每个sheet页可以达到100万条数据以上,2007会在生成Workbook时清理数据,所以2007导出量更大; 2.可以导出多个excel文件到某个目录中,然后打包下载; 3.导出excel格式的xml文件,这种方式可以分批导出数据,适用于大批量数据的导出,以下简单介绍这种方式: 代码如下: package com.e

  • java生成excel报表文件示例

    此次简单的操作将数据从数据库导出生成excel报表以及将excel数据导入数据库 首先建立数据库的连接池: package jdbc; import java.io.FileInputStream; import java.sql.Connection; import java.util.Properties; import org.apache.commons.dbcp.BasicDataSource; public class BaseDAO { private static BasicDa

  • java简单解析xls文件的方法示例【读取和写入】

    本文实例讲述了java简单解析xls文件的方法.分享给大家供大家参考,具体如下: 读取: import java.io.*; import jxl.*; import jxl.write.*; import jxl.format.*; class Aa{ public static void main(String args[]) { try{ Workbook workbook = null; try { workbook = Workbook.getWorkbook(new File("d:

  • java 中JXL操作Excel实例详解

    JXL操作Excel 前言: jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelAPI对中文支持非常好,API是纯Java的, 并不 依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件. 另外需要说明的是,这套API对图形和图表的支持很有限,而且 仅仅识别PNG格式. 使用如下: 搭建环境 将下载后的文件解包,得到jxl.jar

  • java实现把对象数组通过excel方式导出的功能

    一.导入相关jar包,pom依赖如下: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>RELEASE</version> </dependency> 二.开始撸代码 1.如果导出功能使用的比较多,可以将其做成一个工具类,对我下面贴出的代码进行改造 //结果返回的是写入的记录数(以下用的是自

随机推荐