java使用poi.3.10读取excel 2007以上版本(xlsx格式)

1、在使用过程中,一直报错 throw new ClassNotFoundException(name);原因:没有导入xmlbeans-2.6.0.jar包,建议在使用poi时,将所有包都导入进工程。

2、案例源码

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
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;
import org.junit.Test;

public class TestExcelS {

    public static String filePath = TestExcel.class.getResource("/test.xlsx").getPath();
    @Test
    public static void main(String[] args) {
        readXml(filePath);
        System.out.println("-------------");
     }
    public static void readXml(String fileName){
        boolean isE2007 = false;    //判断是否是excel2007格式
        if(fileName.endsWith("xlsx"))
            isE2007 = true;
        try {
            InputStream input = new FileInputStream(fileName);    //建立输入流
            Workbook wb  = null;
            //根据文件格式(2003或者2007)来初始化
            if(isE2007)
                wb = new XSSFWorkbook(input);
            else
                wb = new HSSFWorkbook(input);
            Sheet sheet = wb.getSheetAt(0);        //获得第一个表单
            Iterator<Row> rows = sheet.rowIterator();    //获得第一个表单的迭代器
            while (rows.hasNext()) {
                Row row = rows.next();    //获得行数据
                System.out.println("Row #" + row.getRowNum());    //获得行号从0开始
                Iterator<Cell> cells = row.cellIterator();    //获得第一行的迭代器
                while (cells.hasNext()) {
                    Cell cell = cells.next();
                    System.out.println("Cell #" + cell.getColumnIndex());
                    switch (cell.getCellType()) {    //根据cell中的类型来输出数据
                    case HSSFCell.CELL_TYPE_NUMERIC:
                        System.out.println(cell.getNumericCellValue());
                        break;
                    case HSSFCell.CELL_TYPE_STRING:
                        System.out.println(cell.getStringCellValue());
                        break;
                    case HSSFCell.CELL_TYPE_BOOLEAN:
                        System.out.println(cell.getBooleanCellValue());
                        break;
                    case HSSFCell.CELL_TYPE_FORMULA:
                        System.out.println(cell.getCellFormula());
                        break;
                    default:
                        System.out.println("unsuported sell type");
                    break;
                    }
                }
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

相关代码注释可参考Java使用poi读取Excel2003

时间: 2024-12-31 00:03:48

java使用poi.3.10读取excel 2007以上版本(xlsx格式)的相关文章

java使用poi.3.10读取excel 2003 (xls格式)

最近在做一个Excel导入数据库的案例,整理文档出来供大家参考. 1.下载 最新的 poi http://poi.apache.org/download.html 2.解压 把相关jar包引进项目 3.案例源码 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.DecimalFormat; import org.apa

转帖 java使用poi.3.10读取excel 2010

package poi; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss

关于jquery读取excel文件内容 xls xlsx格式

在一个项目中需要读取excel的内容,当然excel是有格式的,格式就是读取到的第一行会作为属性(Title) 例如如下excel Language Detil en English cn Chinese jp Japanese 该excel会解析成:方式1 当然也可以解析成:方式2 ///////////////////////////////////////////////////////////////////////////////////////////////////////////

使用Apache下poi创建和读取excel文件

一:使用apache下poi创建excel文档 1 @Test 2 /* 3 * 使用Apache poi创建excel文件 4 */ 5 public void testCreateExcel() { 6 // 1:创建一个excel文档 7 HSSFWorkbook workbook = new HSSFWorkbook(); 8 // 2:创建一个sheet工作表,名为“学生成绩” 9 HSSFSheet sheet = workbook.createSheet("学生成绩");

java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式和其他常见Excel中数据转换问题

当使用POI处理excel的时候,遇到了比较长的数字,虽然excel里面设置该单元格是文本类型的,但是POI的cell的类型就会变成数字类型. 而且无论数字是否小数,使用cell.getNumbericCellValue() 去获取值的时候,会得到一个double,而且当长度大一点的时候会变成科学计数法形式. 那么获取这个单元格的原始的数据,就其实是一个double怎么转换成整数的问题了. 使用DecimalFormat对这个double进行了格式话,随后使用format方法获得的String就

POI创建和读取excel文件

Poi创建excel文件 所需jar:poi-3.11-20141221.jar  commons-io-2.2.jar public class PoiExpExcel { /**     * POI生成Excel文件     */    public static void main(String[] args) { String[] title = {"id","name","sex"};                //新建工作簿  

Java读取excel(兼容03和07格式)

读取excel,首先需要下载POI的jar,可以去官网下,也可以在这里下载 一.简单说明 excel2003和excel2007区别比较大,最直观的感受就是扩展名不一样,哈哈 不过,使用POI的API都是面向接口编程的,实际使用起来区别其实不大(知道为什么要面向接口编程了吗?好处就在这里,O(∩_∩)O哈哈~) 代码最直观,直接看代码 二.范例 package com.hundsun.excel.test; import java.io.File; import java.io.FileInpu

Java使用POI实现数据导出excel报表

在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅仅简单的读取office中的数据.尤其是在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.而数据导出的格式一般是EXCEL或者PDF .所以今天我们来简单看一下利用Apache  POI实现数据库中数据导出excel报表.在java中有很多实现数据导出excel报表的第三方jar包.但在比较了一下感觉还是POI相对来

POI读取加密的EXCEL(兼容XLS,XLSX格式)

最近项目里需要读取加密的excel,有xls和xlsx两种类型,对于加解密apache官方网站有简要说明 需要的jar包poi-3.9,jar    poi-ooxml-3.9.jar  poi-ooxml-schemas-3.9.jar   xmlbeans-2.3.0.jar  dom4j-1.6.1.jar 注意poi的3个jar版本号要对应,不然会有一些问题. 上代码咯~ /** * Excel导入 */ @SuppressWarnings("unchecked") @Requ