`
witchlovelearning
  • 浏览: 4249 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java poi 读取03、07excel表格的内容

阅读更多
jar包下载  http://witchlovelearning.iteye.com/blog/1986284
附件为源码


import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

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.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 DataFromExcel {

/**
* @param filePath excel文件存储名称及路径  例:"E:\\person.xls" 或 "E:\\person.xlsx"
*/


private static List<List<String>> read2003Excel(String filePath) { 
        File excelFile = null;
        InputStream inputs = null;
        String cellStr = null;// 单元格,最终按字符串处理 
        List<List<String>> sList = new ArrayList<List<String>>();// 返回封装数据的List 
      
        try { 
            excelFile = new File(filePath);
            if(!excelFile.exists()){
            System.out.println("文件不存在") ;
            }
            else{
            inputs = new FileInputStream(excelFile);
                HSSFWorkbook wb = new HSSFWorkbook(inputs);
                HSSFSheet sheet = wb.getSheetAt(0);
                // 开始循环遍历行,表头不处理,从1开始 
                for (int i = 1; i <= sheet.getLastRowNum(); i++) { 
                    HSSFRow row = sheet.getRow(i);
                    if (row == null) {
                        continue; 
                    }
                    // 循环遍历单元格 
                    List<String> rowStr = new ArrayList<String>(); //每行的值组成的list
                    for (int j = 1; j < row.getLastCellNum(); j++) {  //不读入序号
                        HSSFCell cell = row.getCell(j);// 获取单元格对象 
                        if (cell == null) {
                            cellStr = ""; 
                        } else if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {// 对布尔值的处理 
                            cellStr = String.valueOf(cell.getBooleanCellValue()); 
                        } else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {// 对数字值的处理 
                            cellStr = cell.getNumericCellValue() + ""; 
                        } else if (cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA) {// 对公式的处理 
                        cellStr = cell.getCellFormula();
                        }else {// 其余按照字符串处理 
                            cellStr = cell.getStringCellValue(); 
                        } 
                        rowStr.add(cellStr);
                    } 
                    if("".equals(row.getCell(0)) || row.getCell(0) == null)
                    break;
                    else
                        sList.add(rowStr);// 数据装入List 
                }  }
        } catch (IOException e) { 
        e.printStackTrace(); 
        } finally {// 关闭文件流 
            if (inputs != null) { 
                try { 
                inputs.close(); 
                } catch (IOException e) { 
                    e.printStackTrace(); 
                } 
            } 
        } 
        return sList; 
    } 

private static List<List<String>> read2007Excel(String filePath) { 
File excelFile = null;
        InputStream inputs = null;
        String cellStr = null;
        List<List<String>> sList = new ArrayList<List<String>>();
      
        try { 
            excelFile = new File(filePath);
            if(!excelFile.exists()){
            System.out.println("文件不存在") ;
            }
            else{
            inputs = new FileInputStream(excelFile);
            XSSFWorkbook wb = new XSSFWorkbook(inputs);// 创建Excel2007文件对象 
            XSSFSheet sheet = wb.getSheetAt(0);
           
                // 开始循环遍历行,表头不处理,从1开始 
                for (int i = 1; i < sheet.getLastRowNum(); i++) { 
                XSSFRow row = sheet.getRow(i);
                    if (row == null) {
                        continue; 
                    } 
                    // 循环遍历单元格 
                    List<String> rowStr = new ArrayList<String>();
                    for (int j = 1; j < row.getLastCellNum(); j++) {  //不读入序号
                    XSSFCell cell = row.getCell(j);// 获取单元格对象 
                        if (cell == null) {// 单元格为空设置cellStr为空串 
                            cellStr = ""; 
                        } else if (cell.getCellType() == XSSFCell.CELL_TYPE_BOOLEAN) {// 对布尔值的处理 
                            cellStr = String.valueOf(cell.getBooleanCellValue()); 
                        } else if (cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) {// 对数字值的处理 
                            cellStr = cell.getNumericCellValue() + ""; 
                        } else if (cell.getCellType() == XSSFCell.CELL_TYPE_FORMULA) {// 对公式的处理 
                           cellStr = cell.getCellFormula();
                        } else {// 其余按照字符串处理 
                            cellStr = cell.getStringCellValue(); 
                        } 
                        rowStr.add(cellStr);
                    }
                    if("".equals(row.getCell(0)) || row.getCell(0) == null)
                    break;
                    else
                        sList.add(rowStr);// 数据装入List 
                } 
            }
        } catch (IOException e) { 
        e.printStackTrace(); 
        } finally {// 关闭文件流 
            if (inputs != null) { 
                try { 
                inputs.close(); 
                } catch (IOException e) { 
                    e.printStackTrace(); 
                } 
            } 
        } 
        return sList;
       } 

public static void main(String[] args) {

        List<List<String>> lists = read2007Excel("E:\\readtests.xlsx"); 
//        List<List<String>> lists = read2003Excel("E:\\readtest.xls");
        for (List<String> ls : lists) { 
        for (String s : ls) {
        System.out.print(s+"-"); 
        }
        System.out.print("\n");
        } 
}

}


分享到:
评论

相关推荐

    java 读取excel表格数据 poi

    java读取excel 表格数据。 public static void main(String[] args) { String[][] content=POIExcelUtils.read("E:\\1.xlsx"); for(int i=0;i;i++) { if(content[i]!=null){ for(int j=0;j[i].length;j...

    Java通过POI读取Excel遍历数据,批量生成word文档

    本教程将重点讲解如何使用Apache POI库来读取Excel数据,并基于这些数据批量生成Word文档。Apache POI是一个开源项目,它允许Java开发者处理Microsoft Office格式的文件,如Excel(.xlsx或.xls)和Word(.docx)。 ...

    使用poi读取、写入复杂excel工具类(包含样式)

    使用poi读取写入复杂excel内容包括样式,工具类

    java poi导出图片到excel示例代码

    在示例代码中,使用了Java POI读取Excel文件,并将其写入到数据库中。首先,需要创建一个Workbook对象,然后使用Workbook对象的getSheet方法获取Excel文件的Sheet对象,最后使用Sheet对象的getRow方法读取Excel文件...

    java poi 读取excel表格

    本文将深入探讨如何使用Java POI来读取Excel表格,同时涵盖对不同版本的Excel文件的支持。 首先,我们需要添加Apache POI的依赖到项目中。如果是Maven项目,可以在pom.xml文件中加入以下依赖: ```xml &lt;groupId&gt;...

    用Java程序读取Excel表格内容并显示在Swing中

    在Java编程环境中,读取Excel表格内容并将其展示在Swing界面是一项常见的任务,尤其在数据处理和报表展示方面。本篇文章将详细讲解如何实现这一功能。 首先,我们需要引入两个关键库:Apache POI用于读取Excel文件...

    利用POI读取excel写入到word

    要实现"利用POI读取excel写入到word",我们需要以下步骤: 1. **准备环境**:首先,确保你的项目已经引入了Apache POI的依赖。在给定的压缩包中,"poi - 副本"可能是包含POI库的JAR文件,你需要将其添加到你的项目...

    Java读取Word中的表格(Excel),并导出文件为Excel

    在Java编程中,有时我们需要处理来自不同文档格式的数据,例如从Word文档中提取表格内容,并将其转换成Excel文件。这通常涉及到使用Apache POI库,一个强大的API,用于读写Microsoft Office格式的文件,包括Word(....

    java使用POI读取和导出Excel

    Java使用Apache POI库来操作Excel文件是一种常见的实践,POI是Apache软件基金会的一个开源项目,专门为Microsoft Office格式提供读写支持。在这个场景中,我们主要关注如何使用POI进行Excel文件的读取和导出。 首先...

    java_poi实现excel导入导出

    Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 ...在本文中,我们已经详细介绍了如何使用 Java POI 实现 Excel 导入导出功能,包括读取和写入 Excel 文件。

    Java POI根据模板生成Excel(xlsx)文件

    模板中的单元格、公式、样式、图表等元素都以XML的形式存在,Java POI通过解析这些XML来操作Excel内容。 在使用Java POI处理模板时,我们需要做以下步骤: 1. **读取模板**:使用`XSSFWorkbook`类打开模板文件,它...

    POI读取Excel合并单元格并储存

    本文将深入探讨如何使用Java的Apache POI库来读取Excel文件,并处理其中合并单元格的数据,同时将这些数据存储到实体类中以供后续使用。 Apache POI是一个强大的库,允许程序员使用Java来创建、修改和显示Microsoft...

    poi-读取Excel表格内容

    在本文中,我们将深入探讨如何使用Apache POI读取Excel表格内容。 首先,我们需要理解Apache POI的基本架构。POI分为两个主要部分:HSSF(Horizontally-Scalable Storage Format)用于处理旧版的BIFF格式Excel文件...

    poi复制指定行数的Excel表格内容

    首先,让我们理解标题"poi复制指定行数的Excel表格内容"。这指的是使用Apache POI库来复制Excel文件中特定行的数据,并保留原有的格式和样式。在实际应用中,这可能是因为你需要创建报告的副本,或者需要对原始数据...

    POI读取excel的内容.zip

    本教程将详细讲解如何使用Apache POI库来读取Excel文件的内容。 首先,为了在Java项目中使用Apache POI,我们需要通过Maven进行依赖管理。在`pom.xml`文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache.poi ...

    Java用poi读取excel文件

    有时候,我们需要在 Java 程序中读取 Excel 文件的内容,例如将 Excel 表格中的数据导入到数据库中或者进行数据分析。这时候,我们可以使用 Apache 的 POI 工具包来读取 Excel 文件。 POI(Poor Obfuscation ...

    POI导出Excel表格

    在这个“POI导出Excel表格”的实例中,我们将深入探讨如何利用Apache POI进行Excel文件的导入与导出操作。 首先,我们需要在项目中集成Apache POI库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```...

    java POI 导出复杂要求的表格

    这篇博客“java POI 导出复杂要求的表格”可能详细介绍了如何使用POI库来创建和定制满足特定需求的Excel表格。 在处理复杂的表格时,POI提供了广泛的API,可以处理单元格的样式、数据类型、公式以及工作表的各种...

    java的poi生成excel图表demo

    在Java中,它允许开发者创建、修改和读取Excel工作簿、工作表以及单元格的数据。POI库不仅支持基本的文本和数字操作,还支持更高级的功能,如公式计算、样式设置和图表创建。 2. **创建Excel图表** 要生成Excel图表...

Global site tag (gtag.js) - Google Analytics