使用POI读取Excel文档并解析 import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.apache.poi.hssf.usermo
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; /** * @author ZCJ * 读取excel文档 */ public class TestReadExcel { public static void main(String[] args){ String path = "D:\\2345.xlsx"; try { Listlist = readExcel(path); if( null != list ){ for ( int i =0; i readExcel( String path ) throws IOException{ //如果路径文件不存在直接返回 if( null == path || "".equals(path) ){ return null; } //判断文件是否包含.包含则获取后缀名,否则直接返回 String pathFix = ""; if( path.contains(".") ){ pathFix = path.substring(path.lastIndexOf(".")+1, path.length()); } //根据不同的后缀名读取数据 if( !"".equals(pathFix) ){ //03版本excel if( "xls".equals(pathFix) ){ return readExcelFisXls( path ); } //07版本excel if( "xlsx".equals(pathFix) ){ return readExcelFixXlsx( path ); } } //获取文件后缀名,判断是哪种excel文件 return null; } /** * @param path 文档的全路径 * @return 返回解析之后的数据的集合 * @throws IOException IO异常 * @throws FileNotFoundException 文档不存在异常 */ private static List readExcelFixXlsx(String path) throws IOException { InputStream is = new FileInputStream(path); //获取文档对象 XSSFWorkbook book = new XSSFWorkbook( is ); //创建集合用于存放解析后的数据 List parseData = new ArrayList (); //遍历所有表格取出并解析 for( int i=0; i readExcelFisXls( String path ) throws IOException { //获取输入流 POIFSFileSystem poiFileIn = new POIFSFileSystem( new FileInputStream( path ) ); //获取文档对象 HSSFWorkbook book = new HSSFWorkbook( poiFileIn ); //创建集合用于存放解析后的数据 List parseData = new ArrayList (); //遍历所有表格取出并解析 for( int i=0; i TestReadExcel.java import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; /** * @author ZCJ * 读取excel文档 */ public class TestReadExcel { public static void main(String[] args){ String path = "D:\\2345.xlsx"; try { Listlist = readExcel(path); if( null != list ){ for ( int i =0; i readExcel( String path ) throws IOException{ //如果路径文件不存在直接返回 if( null == path || "".equals(path) ){ return null; } //判断文件是否包含.包含则获取后缀名,否则直接返回 String pathFix = ""; if( path.contains(".") ){ pathFix = path.substring(path.lastIndexOf(".")+1, path.length()); } //根据不同的后缀名读取数据 if( !"".equals(pathFix) ){ //03版本excel if( "xls".equals(pathFix) ){ return readExcelFisXls( path ); } //07版本excel if( "xlsx".equals(pathFix) ){ return readExcelFixXlsx( path ); } } //获取文件后缀名,判断是哪种excel文件 return null; } /** * @param path 文档的全路径 * @return 返回解析之后的数据的集合 * @throws IOException IO异常 * @throws FileNotFoundException 文档不存在异常 */ private static List readExcelFixXlsx(String path) throws IOException { InputStream is = new FileInputStream(path); //获取文档对象 XSSFWorkbook book = new XSSFWorkbook( is ); //创建集合用于存放解析后的数据 List parseData = new ArrayList (); //遍历所有表格取出并解析 for( int i=0; i readExcelFisXls( String path ) throws IOException { //获取输入流 POIFSFileSystem poiFileIn = new POIFSFileSystem( new FileInputStream( path ) ); //获取文档对象 HSSFWorkbook book = new HSSFWorkbook( poiFileIn ); //创建集合用于存放解析后的数据 List parseData = new ArrayList (); //遍历所有表格取出并解析 for( int i=0; i