读取Excel文件 加载Excel文件org.apache.poi poi4.0.1
因为Excel2003(及以前的版本)和Excel2007(及以后的版本)数据保存形式的不同,因此不同版本Excel文件使用POI读取的方式也有所不同。可以根据Excel文件的后缀名判断Excel文件的版本。
.xls的为2003,.xlsx的为2007
public class importExcelFile{ public static void main(String args[]){ //创建文件对象 File excel = new File("这里填写excel文件的路径"); //创建文件输入流 FileInputStream fis = new FileInputStream(excel); //获取excel文件的后缀,注意.需要转义 String[] split = excel.getName().split("\."); //根据后缀判断文件版本,来获取workbook(用于 *** 作excel文件的对象) if ("xls".equals(split[1])) { try { workbook = new HSSFWorkbook(fis); } catch (Exception e) { try { workbook = new XSSFWorkbook(excel); } catch (Exception ex) { workbook = null; } } } else if ("xlsx".equals(split[1])) { try { workbook = new XSSFWorkbook(excel); } catch (Exception e) { try { workbook = new HSSFWorkbook(fis); } catch (Exception ex) { workbook = null; } } } } }获取Excel内容
这里以Excel2007版本的XSSFWorkbook举例,读取第1个单元格的值
public void readExcel(XSSFWorkbook workbook){ //1.获取要读取的sheet对象,这里是以索引获取第0个sheet Sheet sheet = workbook.getsheet(0); //2.获取sheet中的行对象Row,这里获取了第0行 HSSFRow row = sheet.getRow(0); //3.获取第0行中第一个单元格对象Cell HSSFCell cell = row.getCell(0); //4.输出单元格cell的值 System.out.println(cell.toString()); }
poi读取Excel只能以一行一行的形式来读,我们遍历Excel的时候还会常用到以下几个方法。
//对sheet *** 作 sheet.getFirstRowNum();//获取表中第一行数据的行号 sheet.getLastRowNum();//获取表中最后一行数据的行号 //对row *** 作 row.getFirstCellNum();//获取行中第一个含有数据的单元格的列号 row.getLastCellNum();//获取行中第一个含有数据的单元格的列号编辑、保存导出Excel文件 编辑Excel内容
编辑第0个单元格的值为“abc”
public void editExcel(XSSFWorkbook workbook){ //1.获取要读取的sheet对象,这里是以索引获取第0个sheet Sheet sheet = workbook.getsheet(0); //2.获取sheet中的行对象Row,这里获取了第0行 HSSFRow row = sheet.getRow(0); //3.获取第0行中第一个单元格对象Cell HSSFCell cell = row.getCell(0); //4.修改单元格的值 cell.setCellValue("abc"); }保存Excel文件
保存导出Excel文件到指定路径
public void output(XSSFWorkbook workbook){ try{ //1.创建outputsteam对象用于导出 OutputStream out = new outputstream(new File("要保存的路径")); //2.调用XSSFWorkbook的write方法导出 workbook.write(out); //3.关闭资源 workbook.close(); out.close(); }catch(Exception e){ e.printStackTrace(); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)