`
开心就好
  • 浏览: 542993 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

Java 操作 Excel (读取Excel2007,Poi实现)

阅读更多

关于Java读取Excel2007的文章在Google、百度上搜索一下,没有太好的例子,实现的也不算太好。查看了一下Poi,最新的 POI 3.5 beta 4 支持读写 Excel2007和PPT2007(XLSX and PPTX),自己来实现Java读取Excel2007了。

 

1,下载 POI 3.5 beta 4 解压,把其中的jar包导入项目文件。以我的读取为例,导入了以下jar包。


 没有配置 log4j,测试时报告警报信息,应该为加载顺序导致的初始化问题造成(暂时没有找原因)。

 

2,建立读取 Excel2007 方法

 

        // 构造 XSSFWorkbook 对象,strPath 传入文件路径
        XSSFWorkbook xwb = new XSSFWorkbook(strPath);
        // 读取第一章表格内容
        XSSFSheet sheet = xwb.getSheetAt(0);
        // 定义 row、cell
        XSSFRow row;
        String cell;
        // 循环输出表格中的内容
        for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++) {
            row = sheet.getRow(i);
            for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++) {
                // 通过 row.getCell(j).toString() 获取单元格内容,
                cell = row.getCell(j).toString();
                System.out.print(cell + "\t");
            }
            System.out.println("");
        }

 

此过程直接传入文件所在路径,其他一些过程已经被自动实现。

 

3,测试,文件为8列3563行数据,以文本方式读取内容,

 

    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS");
        TimeZone t = sdf.getTimeZone();
        t.setRawOffset(0);
        sdf.setTimeZone(t);
        Long startTime = System.currentTimeMillis();
        String fileName = "F:\\我的文档\\学生缴费代码.xlsx";
        // 检测代码
        try {
            PoiReadExcel er = new PoiReadExcel();
            // 读取excel2007
            er.testPoiExcel2007(fileName);
        } catch (Exception ex) {
            Logger.getLogger(FastexcelReadExcel.class.getName()).log(Level.SEVERE, null, ex);
        }
        Long endTime = System.currentTimeMillis();
        System.out.println("用时:" + sdf.format(new Date(endTime - startTime)));
    }

 

读取所用时间为:4.172秒。

  • 描述: 读取Excel2007所用Jar包
  • 大小: 15.8 KB
22
4
分享到:
评论
17 楼 贝塔ZQ 2016-09-02  
操作excel文件,可以用插件,简单方便,PageOffice就很简单
16 楼 springmvc168 2014-05-27  
Java 操作 Excel 代码下载:
15 楼 hft24dq 2014-04-15  
启动总是报错。
Caused by: java.lang.NullPointerException
at org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(XmlBeans.java:769)
at org.openxmlformats.schemas.spreadsheetml.x2006.main.StyleSheetDocument.<clinit>(Unknown Source)
... 13 more

我的jar版本和你的一模一样,本地main方法都起不起来!怎么搞啊

14 楼 vane002 2012-05-09  
在么?我看了你的文章,发现读取没有任何问题,但是现在问题出现,就是不关闭流,导致我无法删除读取后的文件。我邮件vane360@163.com ,能方便沟通下么?
13 楼 yuhaoxiaosi 2011-11-15  
内存溢出。
12 楼 fke00 2011-01-17  
按照楼主所说的,可以读取2007Excel数据了,但是2003的读不了。
11 楼 zjx2388 2009-11-24  
我刚按照楼上的解析,控制台报错了(空指针,指向的是for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++) {这一行,第一段代码的11行),
我用的poi-3.5-beta6-20090622.jar等包,
请问这是问题,楼主能贴出完整代码吗?

刚看了,文件内容有点不规则,是不是不能解析


如果楼主方便可以站内联系,期待回复
10 楼 xiaogu2008 2009-10-23  
poi 能否操作 excel中的 数据透析表
9 楼 moses3017 2009-09-15  
moses3017 写道
excel2007保存为2003格式,我发现用POI只能读不能写(还是按照以前读写2003的方式),请教楼主这是什么原因?

问题已经解决,更新poi包后搞定了
8 楼 moses3017 2009-09-14  
excel2007保存为2003格式,我发现用POI只能读不能写(还是按照以前读写2003的方式),请教楼主这是什么原因?
7 楼 whs8316 2009-08-13  
请问下有没有写excel的代码,和以前的写2003的代码有区别吗
6 楼 cbzdream 2009-06-15  
能给出全部代码吗?
5 楼 开心就好 2009-06-05  
in8491 写道

请问我现在按照楼主的写法读一万以内的数据还可以 但是几万或者几十万的excel2007的数据时就会报 java 堆栈溢出 不知道poi对excel2007 支持很差么?

具体的我也不是很清楚,毕竟还是Beta版本的,或者是我使用的方式存在问题,有更好的实现方式。
我们也可以让它分段来处理大Excel文件,这样可以避免堆栈溢出。
4 楼 in8491 2009-06-02  
请问我现在按照楼主的写法读一万以内的数据还可以
但是几万或者几十万的excel2007的数据时就会报 java 堆栈溢出
不知道poi对excel2007 支持很差么?
3 楼 sharp_lover 2009-02-04  
谢谢楼主,自己实验一下。呵呵~~~
2 楼 开心就好 2009-02-03  
whaosoft 写道

excel 2007和2003有什么区别

1,界面不同 2,功能更强(新增了对象和函数) 3,文件格式不同,算是最主要的问题了。2007是以xml方式进行保存的。
你可以试试把2007版本的文件,进行解压,看看里面的文件,就会了解的。
1 楼 whaosoft 2009-02-02  
excel 2007和2003有什么区别

相关推荐

    java_poi实现excel导入导出

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

    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读写Excel,POI.JAR,Word内容读取

    java读写Excel,POI.JAR,Word内容读取

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

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

    poi 操作excel模板

    在Java开发中,POI库被广泛用于生成、修改和读取Excel文档。本篇将深入探讨如何利用Apache POI来操作Excel模板,以及如何读取数据并将其填充到新生成的文件中,最终提供下载。 首先,你需要在项目中引入Apache POI...

    java的poi生成excel图表demo

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

    java读取excel简单例子

    这个简单的例子展示了如何读取Excel文件的基本操作,但实际应用中可能需要处理更复杂的情况,比如单元格的格式、公式、超链接等。此外,jxl库只支持Excel的旧版本(.xls),对于新的.xlsx格式,你可能需要使用Apache...

    java使用 poi 读取excel

    总的来说,Apache POI 提供了强大的功能,使得 Java 开发者能够轻松地读取、写入和操作 Excel 文件,从而在数据处理方面提高效率。通过熟练掌握 Apache POI,你可以实现各种复杂的 Excel 处理需求。

    POI生成Excel POI操作Excel POI读取Excel POI类库

    Apache POI是一个强大的Java库,专门用于处理...通过lib.rar和Poi02.rar中的示例代码,你可以更深入地了解和学习POI操作Excel的具体实现。在实践中,结合这些资源,你将能够熟练地在Java Web项目中集成Excel处理功能。

    Java实现Excel读写的poi 5.2.1版本jar

    Java中的Apache POI库是一个强大的工具,用于读取和写入Microsoft Office格式的文件,特别是Excel的XLS和XLSX格式。在这个5.2.1版本中,POI提供了对Excel电子表格的强大支持,包括读取数据、修改内容、创建新工作簿...

    java使用POI操作excel (支持excel2007)

    Java 使用Apache POI库操作Excel 2007文件详解 在Java开发中,处理Excel文件是一项常见的任务,特别是对于数据分析、数据导入导出或报表生成等场景。Apache POI是一个流行的开源库,它允许开发者读写Microsoft ...

    java读取excel poi 方法

    ### Java读取Excel POI方法详解 #### 一、POI简介及背景 Apache POI 是一个用于处理 Microsoft Office 格式文件的开源库,它提供了读取、写入和修改这些文件的功能。POI 项目中最常用的部分是 HSSF 和 XSSF,分别...

    java操作Excel用的jar包poi

    两者在处理方式上有所不同,但都能实现创建、修改和读取Excel文件的功能。 2. **SXSSF**: SXSSF是内存优化的API,适用于处理大型Excel文件。它不是直接在内存中存储整个工作簿,而是基于一个滑动窗口模型,只保留...

    Java读取大数据量Excel的方法(POI)

    为了读取Excel文件,我们需要引入Apache POI的依赖库。如果你使用Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi-ooxml &lt;version&gt;4.1.2 ``` 或者,如果你的项目不...

    Java poi基于事件驱动读取excel 2007海量数据 处理空单元格

    该工具类是poi基于事件驱动去读取海量excel数据,解决内存溢出以及空单元格的问题。 该压缩包里面有两个文件,TestExcel.java主要是原始的处理方法,操作简单,适合小数据量的读取。 ExampleEventUserModelUtil.java...

    poi.zip java读取excel文件

    Java 读取 Excel 文件是许多开发任务中的常见需求,Apache POI 是一个广泛使用的开源库,专门用于处理 Microsoft Office 格式的文件,包括 Excel。在本案例中,提供的压缩包 "poi.zip" 包含了两个子文件:poi-bin-...

    java 通过poi操作excel jar包

    在实际使用中,Java开发者首先需要将对应的JAR包添加到项目的类路径中,然后就可以通过调用Apache POI提供的API来实现Excel操作。例如,创建一个新的Excel文件并写入数据的简单示例代码: ```java import org....

    完美解决java读取excel内存溢出问题.rar

    总结来说,解决Java读取Excel内存溢出问题,关键在于合理利用资源、优化代码逻辑以及选择适合的API,如Apache POI的SXSSF。通过这些方法,我们可以在不显著增加系统资源负担的情况下,高效地处理大Excel文件。

    利用POI读取excel写入到word

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

Global site tag (gtag.js) - Google Analytics