`
阅读更多

POI 读Excel非常简单,例子如下:

 

    private Map<String, Object> readExcel(File excel) {
        Map<String, Object> result = new HashMap<String, Object>();
        result.put("success", false);
        FileInputStream fis = null;
        Workbook wb = null;
        int saveCount = 0;
        try {
            try {
                fis = new FileInputStream(excel);
                wb = WorkbookFactory.create(fis);
                for (int s = 0; s < wb.getNumberOfSheets(); s++) {
                    Sheet sheet = wb.getSheetAt(s);
                    int rowNum = sheet.getPhysicalNumberOfRows();
                    if (rowNum < 1) {
                        result.put("msg", "导入文件中没有数据");
                        return result;
                    }
                    for (int r = 0; r < rowNum; r++) {
                        Row row = sheet.getRow(r);
                        if (row == null) {
                            continue;
                        }
                        int cells = row.getPhysicalNumberOfCells();
                        for (int c = 0; c < cells; c++) {
                            Cell cell = row.getCell(c);
                            String value = null;
                            switch (cell.getCellType()) {
                            case HSSFCell.CELL_TYPE_FORMULA:
                                value = cell.getCellFormula();
                                break;
                            case HSSFCell.CELL_TYPE_NUMERIC:
                                value = cell.getNumericCellValue() + "";
                                if (value.endsWith(".0")) {
                                    value = value.substring(0, value.length() - 2);
                                }
                                break;
                            case HSSFCell.CELL_TYPE_STRING:
                                value = cell.getStringCellValue();
                                break;
                            default:
                            }
                            System.out.println(value);
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        } finally {
            try {
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        result.put("msg", "导入[" + saveCount + "]条数据");
        result.put("success", true);
        return result;
    }
 

 

关于问题:

"java.lang.NoClassDefFoundError: org/openxmlformats/schemas/*something*"

比如:org.openxmlformats.schemas.wordprocessingml.x2006

官网上有说明

 

I'm using the poi-ooxml-schemas jar, but my code is failing with "java.lang.NoClassDefFoundError: org/openxmlformats/schemas/*something*"

To use the new OOXML file formats, POI requires a jar containing the file format XSDs, as compiled by XMLBeans. These XSDs, once compiled into Java classes, live in the org.openxmlformats.schemas namespace.

There are two jar files available, as described in the components overview section. The full jar of all of the schemas is ooxml-schemas-1.1.jar, and it is currently around 15mb. The smaller poi-ooxml-schemas jar is only about 4mb. This latter jar file only contains the typically used parts though.

Many users choose to use the smaller poi-ooxml-schemas jar to save space. However, the poi-ooxml-schemas jar only contains the XSDs and classes that are typically used, as identified by the unit tests. Every so often, you may try to use part of the file format which isn't included in the minimal poi-ooxml-schemas jar. In this case, you should switch to the full ooxml-schemas-1.1.jar. Longer term, you may also wish to submit a new unit test which uses the extra parts of the XSDs, so that a future poi-ooxml-schemas jar will include them.

There are a number of ways to get the full ooxml-schemas-1.1.jar. If you are a maven user, see the the components overview section for the artifact details to have maven download it for you. If you download the source release of POI, and/or checkout the source code from subversion, then you can run the ant task "compile-ooxml-xsds" to have the OOXML schemas downloaded and compiled for you (This will also give you the XMLBeans generated source code, in case you wish to look at this). Finally, you can download the jar by hand from the POI Maven Repository.

Note that for POI 3.5 and 3.6, the full ooxml schemas jar was named ooxml-schemas-1.0.jar. For POI 3.7, the filename was bumped to ooxml-schemas-1.1.jar when generics support was added. You can use ooxml-schemas-1.1.jar with POI 3.5 and 3.6 if you wish, but POI 3.7 won't wokr with ooxml-schemas-1.0.jar (it needs thew newer one).

 

 

简单来说官方lib中的poi-ooxml-schemas-3.9-20121203是一个缩水的版本,只提供常用的一些类。所以解决的办法就是导入ooxml-schemas-1.1.jar而不是poi-ooxml-schemas-3.9-20121203

分享到:
评论

相关推荐

    poi 3.9读取excel xls xlsx 有jar包

    在标题中提到的“poi 3.9读取excel xls xlsx 有jar包”,指的是使用Apache POI 3.9版本来读取Excel的工作簿(XLS和XLSX格式)。这个版本的POI包含了处理Excel文件所需的核心组件。 Apache POI 提供了HSSF(Horrible...

    poi3.9读写EXCEL

    在本例中,我们将聚焦于“poi3.9读写EXCEL”这一主题,特别是针对支持2007版Excel(XLSX格式)的特性。 Apache POI是Apache软件基金会的一个开源项目,其主要目标是提供一个API,使得Java程序员能够处理Microsoft ...

    poi3.9读写excel兼容03和07版本

    "poi3.9读写excel兼容03和07版本"这个标题指的是使用Apache POI 3.9版本的API,能够兼容两种不同格式的Excel文件:.xls(Excel 2003及更早版本)和.xlsx(Excel 2007及更高版本)。 在描述中提到的"完美修订版本...

    spring3.2.5 MVC Poi3.9操作excel批量导入

    总之,"spring3.2.5 MVC Poi3.9操作excel批量导入"是一个涵盖了Web开发、数据处理和文件操作的综合技术主题。结合Spring MVC的灵活性、Apache POI的强大文件处理能力以及Maven的项目管理,开发者可以构建出强大且...

    poi3.9 操作Excel(支持大数据量) jar包+事例源码

    在“poi3.9 操作Excel(支持大数据量) jar包+事例源码”中,我们可以看到一个专门针对大数据处理优化的版本,这使得在Java应用程序中处理大量Excel数据变得高效且实用。 Apache POI 3.9版引入了一些重要的改进和...

    利用poi3.9做的excel导出工具

    利用poi3.9做的excel导出工具。 这是一个工程直接压缩而成的。 测试10万行*8列,从查询到生成文件所花时间13620毫秒 测试100万行*8列,从查询到生成文件所花时间121443毫秒 主要目录: src com.util ----DBUtil.java...

    Poi 3.9操作Excel2007、Excel2003

    Poi读取Excel2003+Excel2007 Poi生成Excel2003 源码,调用 方法即可

    poi3.9 依赖的jar包

    1. **poi-3.9.jar**:这是Apache POI的核心库,包含了处理Excel(HSSF和XSSF)、Word(HWPF和XWPF)以及PowerPoint(HSLF和XSLF)文档的主要类和接口。它提供了创建、读取和更新这些文件的基本功能。 2. **poi-...

    poi-3.9 使用poi技术处理Excel表导入、导出的包

    在Java环境中,Apache POI库是处理Excel数据的首选工具,它提供了丰富的API来读取、写入和操作Excel文件。在这个“poi-3.9”包中,你将获得Apache POI 3.9版本的所有组件,这个版本发布于2012年,虽然相对较旧,但...

    poi-3.9 apache-poi-3.9 最新稳定版本

    总的来说,Apache POI 3.9版本为Java开发者提供了强大的处理Excel文件的能力,无论是读取旧版的.xls文件,还是编写现代的.xlsx文件,都能游刃有余。在实际项目中,我们可以利用它进行数据的读取、分析、转换和报告...

    利用poi3.9操作excel例子,对比双色球的历史中奖数据

    总结起来,本示例通过Apache POI 3.9展示了如何利用Java来处理Excel文件,包括创建、读取和修改Excel数据。对于数据分析、报表生成和自动化任务,这种能力是非常有用的。通过熟练掌握POI库,开发者可以在Java环境中...

    org.apache.poi3.9 jar包

    "org.apache.poi3.9.jar"是这个项目的一个版本,适用于Java环境,它提供了对Office文档的读取、写入和修改功能。在Java编程中,如果你需要处理Excel数据,这个库是一个非常重要的工具。 该jar包中的主要类和接口...

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

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

    poi3.9jar包下载

    "poi3.9jar包下载"指的是获取Apache POI 3.9版本的库文件,这个版本的POI支持对Excel的各种操作。 1. **Apache POI基本介绍** Apache POI 是Apache软件基金会的一个项目,它允许Java程序员创建、修改和显示MS ...

    poi3.9jar包全

    标题中的"poi3.9jar包全"指的是Apache POI 3.9版本的完整jar文件,这个版本发布于2013年,是POI的一个稳定版本,包含了处理Office文件所需的所有类和方法。 在Apache POI 3.9中,主要包含以下几个关键组件: 1. **...

    POI3.9涉及jar包汇总

    在版本3.9中,POI提供了一整套API,使得Java开发者能够方便地读取、写入和修改这些文档。下面我们将详细探讨这个版本中涉及的jar包以及它们在处理Office文档中的作用。 1. **核心组件** - `poi-3.9.jar`: 这是...

    POI3.9必要jar包

    总之,"POI3.9必要jar包"是Java开发人员处理Excel文件时必不可少的工具集,包含了所有与Apache POI3.9版本相关的库,能够确保项目运行的稳定性和兼容性。使用这些jar文件,开发者可以高效、灵活地进行Excel文件的...

    Poi 3.9 Jar包

    标题提到的"POI 3.9 Jar包"是Apache POI的一个版本,这个版本包含了对Excel文件处理的主要功能。 1. **Apache POI**: Apache POI 是一个Java API,它允许Java应用程序创建、修改和显示Microsoft Office文件。这个...

    java word转html poi3.9

    Apache POI是Java中的一个API,它提供了读写Microsoft Office格式文件的能力,如Word、Excel和PowerPoint。在POI 3.9版本中,我们可以使用HWPF(Horrible Word Processor Format)来处理旧版的Word(.doc)文件,而...

Global site tag (gtag.js) - Google Analytics