poi读取excel,获取全部数据.

excel有行和列,根据行列下表,可以锁定单元格cell.

其中,合并单元格需要特殊处理,下面的代码,就是遍历excel,读取其中的全部数据.

package com;

import java.io.FileInputStream;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;

public class ReadExcel {
	
	public static void main(String[] args) {
		try {
			Workbook wb = new HSSFWorkbook(new FileInputStream("W:\\a.xls"));
			Sheet sheet=wb.getSheetAt(0);
			
			//下面是处理合并单元格的代码。
					
					//获取当前sheet页中,所有的合并单元格的数量。
					int regionsCount = sheet.getNumMergedRegions();
					
					if (regionsCount > 0) {
						for (int i = 0; i < regionsCount; i++) {
							CellRangeAddress region = sheet.getMergedRegion(i);
							//输出单元格的起止。
							System.out.println(region.formatAsString());
							//获取单元格的起止行和列
							int rowFrom = region.getFirstRow();
							int rowTo = region.getLastRow();
							int cellFrom = region.getFirstColumn();
							int cellTo = region.getLastColumn();
							
							//sheet.getRow().getCell   可以获取某行某个单元格。
							String hbzhi = sheet.getRow(rowFrom).getCell(cellFrom).toString();
							System.out.println(hbzhi);
						}
					}
			
			//处理合并单元格 end
					
			//如果没有合并单元格,可以设置行和列的下标,0开始,循环,使用sheet.getRow(rowFrom).getCell(cellFrom).toString();,可以遍历整个excel。
			//如果有合并单元格,请按照上面代码块查询数据。
			
		} catch (Exception e) {
			e.printStackTrace();
			
		}
	}

}


上一篇:【解决】Word 在试图打开文件时遇到错误 请尝试下列方法:* xxx * xxx * xxx


下一篇:JDBC批处理读取指定Excel中数据到Mysql关系型数据库