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

poi读取excel2003/2007

    博客分类:
  • Java
阅读更多
package com.lietou.open.common.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.DecimalFormat;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
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;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelUtil
{
    private static final String EXCEL_2007 = "xlsx";
    
    public static void main(String[] args) throws Exception
    {
        String path = "D:\\学历.xlsx";
        ExcelUtil.read(path);
    }
    
    public static void read(InputStream is, boolean flag) throws Exception
    {
        Workbook wb = null;
        if(flag)
        {
            wb = new HSSFWorkbook(is);// 2003
        }
        else
        {
            wb = new XSSFWorkbook(is);// 2007
        }
        read(wb);
    }
    
    public static void read(String fileName) throws Exception
    {
        Workbook wb = null;
        if(fileName.endsWith(EXCEL_2007))
        {
            wb = new XSSFWorkbook(fileName);
        }
        else
        {
            File f = new File(fileName);
            FileInputStream is = new FileInputStream(f);
            POIFSFileSystem fs = new POIFSFileSystem(is);
            wb = new HSSFWorkbook(fs);
            is.close();
        }
        read(wb);
    }
    
    public static void read(Workbook wb) throws Exception
    {
        try
        {
            for(int k = 0; k < wb.getNumberOfSheets(); k++)
            {
                // sheet
                Sheet sheet = wb.getSheetAt(k);
                int rows = sheet.getPhysicalNumberOfRows();
                for(int r = 0; r < rows; r++)
                {
                    // 定义 row
                    Row row = sheet.getRow(r);
                    if(row != null)
                    {
                        int cells = row.getPhysicalNumberOfCells();
                        for(short c = 0; c < cells; c++)
                        {
                            Cell cell = row.getCell(c);
                            if(cell != null)
                            {
                                Object value = null;
                                switch(cell.getCellType())
                                {
                                    
                                    case Cell.CELL_TYPE_FORMULA:
                                        value = cell.getCellFormula();
                                        break;
                                    case Cell.CELL_TYPE_NUMERIC:
                                        if(HSSFDateUtil.isCellDateFormatted(cell))
                                        {
                                            value = cell.getDateCellValue();
                                        }
                                        else
                                        {
                                            value = cell.getNumericCellValue();
                                        }
                                        break;
                                    case Cell.CELL_TYPE_STRING:
                                        value = cell.getStringCellValue();
                                        break;
                                    case Cell.CELL_TYPE_BOOLEAN:
                                        value = cell.getBooleanCellValue();
                                        cell.getDateCellValue();
                                        break;
                                    default:
                                }
                                System.out.println(value);
                            }
                        }
                    }
                }
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
    
}
分享到:
评论

相关推荐

    使用POI读取excel03/07文件内容

    本篇将深入讲解如何使用Apache POI来读取Excel 2003(.xls)和2007(.xlsx)文件的内容。 首先,我们需要了解Excel文件的两种主要格式:BIFF(Binary Interchange File Format)用于Excel 2003及更早版本,存储为....

    利用POI读取excel写入到word

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

    poi读取excel2007和2003兼容工具例子

    在这个"poi读取excel2007和2003兼容工具例子"中,我们将探讨如何使用POI来读取不同版本的Excel文件,特别是Excel 2003(.xls)和Excel 2007及更高版本(.xlsx)。 1. **Apache POI库**:Apache POI是Apache软件基金...

    POI读取excel的内容.zip

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

    android5使用poi读取excel

    android5使用poi读取excel,android5使用poi读取excel,android5使用poi读取excel,android5使用poi读取excel

    poi-bin-3.9以及读取Excel2007/2010文件的XSSFWorkbook方法所需的架包

    在本文中,我们将深入探讨如何使用Apache POI 3.9版本来读取Excel 2007及更高版本(即XLSX格式)的文件,特别是通过`XSSFWorkbook`类进行操作。首先,你需要确保已经下载了必要的库,这通常包括poi-bin-3.9压缩包,...

    poi读取excel文件实例(兼容excel2007)

    在“poi读取excel文件实例”中,我们将讨论如何使用Apache POI API来读取和操作Excel 2007文件。以下是一些关键知识点: 1. **创建工作簿对象**:首先,你需要通过`WorkbookFactory`类的`create()`方法打开或创建一...

    apache POI 读取 Excel

    apache poi 读取 Excel 的 jar 包 博文链接:https://wxinpeng.iteye.com/blog/231895

    poi读取excel并输出到jsp页面

    标题中的“poi读取excel并输出到jsp页面”是指使用Apache POI库来处理Microsoft Excel文件,并将数据在JavaServer Pages (JSP) 页面上显示的技术。Apache POI 是一个开源项目,它允许开发者创建、修改和显示MS ...

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

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

    POI读取excel的例子

    POI读取excel的例子

    poi读取excel文件

    标题提到的"poi读取excel文件",指的是使用Apache POI库来处理Excel数据。在最新的版本中,POI引入了更高效和强大的功能,使得处理Excel文件变得更加方便。 描述中提到了"最新版poi相关的6个jar包",这些jar包是...

    apache poi 读取Excel文件内容(2003,2007)

    这篇博文主要讲解如何使用Apache POI库来读取Excel文件的内容,无论是2003版的.XLS还是2007版及以后的.XLSX格式。 在Java编程中,Apache POI 提供了丰富的API,使得开发者可以方便地操作Excel文件。首先,我们需要...

    poi 读取excel小实例

    实现了JAVA 窗口,读取EXCEL文件,用poi读取EXCEL内容只是一个小例子

    android POI 读取excel 精简jar

    在Android平台上,使用Apache POI库来读取Excel文件是一种常见的解决方案。Apache POI是一个流行的开源项目,它允许程序员创建、修改和显示Microsoft Office格式的文件,包括Excel(.xls和.xlsx)。在这个“android ...

    POI读取EXCEL教程

    读取Excel文件使用HSSF的usermodel API非常直观。首先,你需要创建一个`InputStream`,然后实例化`HSSFWorkbook`: ```java InputStream myxls = new FileInputStream("workbook.xls"); HSSFWorkbook wb = new ...

    Java使用apache POI读取Excel2007以上代码以及所需jar包

    本文将详细介绍如何使用Apache POI库来读取Excel 2007及以上版本(即XLSX格式)的文件,并提供所需的jar包信息。 首先,要使用Apache POI读取XLSX文件,你需要确保引入了正确的依赖。Apache POI项目提供了多个组件...

    POI读取2007 Excel文件

    标题中的“POI读取2007 Excel文件”指的是使用Apache POI库来解析和操作Microsoft Office Open XML (OOXML)格式的Excel文件,这种格式通常以.xlsx为扩展名。Apache POI是一个流行的Java库,它允许开发人员在Java应用...

    POI兼容Excel2003和2007

    在本文中,我们将重点讨论如何使用POI库来实现对Excel 2003和2007文件的兼容性操作。Excel 2003使用的是.BIFF(Binary Interchange File Format)格式,而Excel 2007及以上版本则引入了新的.OpenXML(.xlsx)格式,...

    poi读取Excel2007文件

    标题中的“poi读取Excel2007文件”指的是使用Apache POI库来处理Microsoft Office Open XML (OOXML) 格式的Excel文件,也就是.xlsx格式。Apache POI是Apache软件基金会的一个开源项目,它提供了Java API,使得开发者...

Global site tag (gtag.js) - Google Analytics