POI读取Excel浅谈



http://www.cnblogs.com/forbreak/archive/2012/07/10/2584961.html

转: POI读取Excel浅谈 
先看代码,挨句解释: 
一般遍历使用两种方式,1:得到总的行数和每行的列数,然后循环。2:使用迭代 
先看第一种: 

复制代码
Java代码  
package com.golden.test;   
  
import java.io.File;   
import java.io.FileInputStream;   
  
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;   
  
/**  
*   
* @author 崔素强  
*   
*/  
public class PoiReadXls2 {   
    public static void main(String[] args) {   
        File f = new File("c:\\a.xls");   
        try {   
            FileInputStream is = new FileInputStream(f);   
            HSSFWorkbook wbs = new HSSFWorkbook(is);   
            HSSFSheet childSheet = wbs.getSheetAt(0);   
            // System.out.println(childSheet.getPhysicalNumberOfRows());   
            System.out.println("有行数" + childSheet.getLastRowNum());   
            for (int j = 0; j < childSheet.getLastRowNum(); j++) {   
                HSSFRow row = childSheet.getRow(j);   
                // System.out.println(row.getPhysicalNumberOfCells());   
                // System.out.println("有列数" + row.getLastCellNum());   
                if (null != row) {   
                    for (int k = 0; k < row.getLastCellNum(); k++) {   

                        HSSFCell cell = row.getCell(k);   
                        if (null != cell) {   
                            switch (cell.getCellType()) {   
                            case HSSFCell.CELL_TYPE_NUMERIC: // 数字   
                                System.out.print(cell.getNumericCellValue()   
                                        + "   ");   
                                break;   
                            case HSSFCell.CELL_TYPE_STRING: // 字符串   
                                System.out.print(cell.getStringCellValue()   
                                        + "   ");   
                                break;   
                            case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean   
                                System.out.println(cell.getBooleanCellValue()   
                                        + "   ");   
                                break;   
                            case HSSFCell.CELL_TYPE_FORMULA: // 公式   
                                System.out.print(cell.getCellFormula() + "   ");   
                                break;   
                            case HSSFCell.CELL_TYPE_BLANK: // 空值   
                                System.out.println(" ");   
                                break;   
                            case HSSFCell.CELL_TYPE_ERROR: // 故障   
                                System.out.println(" ");   
                                break;   
                            default:   
                                System.out.print("未知类型   ");   
                                break;   
                            }   
                        } else {   
                            System.out.print("-   ");   
                        }   
                    }   
                }   
                System.out.println();   
            }   
        } catch (Exception e) {   
            e.printStackTrace();   
        }   
    }   
}  
android 使用poi读取高版本excel, 解决以下这两个错误 java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/xml/stream/XMLEventFactory; at org.apache.poi.openxml4j.opc.internal.marshallers.PackagePropertiesMarshaller.(PackagePropertiesMarshaller.java:41) at org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:161) at org.apache.poi.openxml4j.opc.OPCPackage.(OPCPackage.java:141) at org.apache.poi.openxml4j.opc.ZipPackage.(ZipPackage.java:97) at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:324) at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:184) at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:149) javax.xml.stream.FactoryConfigurationError: Provider com.sun.xml.internal.stream.events.XMLEventFactoryImpl not found at javax.xml.stream.FactoryFinder.newInstance(Unknown Source) at javax.xml.stream.FactoryFinder.newInstance(Unknown Source) at javax.xml.stream.FactoryFinder.find(Unknown Source) at javax.xml.stream.FactoryFinder.find(Unknown Source) at javax.xml.stream.XMLEventFactory.newInstance(Unknown Source) at org.apache.poi.openxml4j.opc.internal.marshallers.PackagePropertiesMarshaller.(PackagePropertiesMarshaller.java:41) at org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:161) at org.apache.poi.openxml4j.opc.OPCPackage.(OPCPackage.java:141) at org.apache.poi.openxml4j.opc.ZipPackage.(ZipPackage.java:97) at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:324) at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:184) at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:149)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值