从JAVA的Excel工作表2007年读取数据

尝试读取Excel 2007电子表格(.xlsx)时遇到问题。 我想通过使用POI库在JAVA中实现该方法,但我得到这个错误:

线程“main”中的exceptionjava.lang.NoClassDefFoundError:org / apache / xmlbeans / XmlException

这是我的方法:

public void No_rows() throws IOException { File inputWorkbook = new File(inputFile); FileInputStream w = new FileInputStream(inputWorkbook); XSSFWorkbook workbook = new XSSFWorkbook(w); XSSFSheet sheet = workbook.getSheetAt(0); Iterator rows = sheet.rowIterator(); int number=sheet.getLastRowNum(); this.num_rows = number; w.close(); } 

这是创build和读取* .xlsx文件。 如果你得到这个错误,请包含jaxp--api-1.4.jar

 public class Readxlsx { public static void main(String[] args) { FileOutputStream fos = null; FileInputStream fis = null; try { fos = new FileOutputStream(new File("D:\\prac\\sample1.xlsx")); XSSFWorkbook wb = new XSSFWorkbook(); for(int m=0;m<3;m++){ if(m==0) { XSSFSheet sh = wb.createSheet("Sachin"); System.out.println(" Sheet NO:"+m); for (int k = 0; k < 30; k++) { XSSFRow row = sh.createRow((short)k); for (int i = 0; i < 30; i++) { XSSFCell cell = row.createCell((short)i); cell.setCellValue(wb.getSheetName(m)+i); } } } else if(m==1){ XSSFSheet sh1 = wb.createSheet("Dravid"); System.out.println(" Sheet NO:"+m); for (int k = 0; k < 30; k++) { XSSFRow row = sh1.createRow((short)k); for (int i = 0; i < 30; i++) { XSSFCell cell = row.createCell((short)i); cell.setCellValue(wb.getSheetName(m)+i); } } } else { XSSFSheet sh2 = wb.createSheet("Dhoni"); System.out.println(" Sheet NO:"+m); for (int k = 0; k < 30; k++) { XSSFRow row = sh2.createRow((short)k); for (int i = 0; i < 30; i++) { XSSFCell cell = row.createCell((short)i); cell.setCellValue(wb.getSheetName(m)+i); } } } } wb.write(fos); fos.close(); fis= new FileInputStream(new File("D:\\prac\\sample1.xlsx")); XSSFWorkbook workbook = new XSSFWorkbook(fis); XSSFSheet sheet = workbook.getSheetAt(0); java.util.Iterator<org.apache.poi.ss.usermodel.Row> rows = sheet.rowIterator(); int number=sheet.getLastRowNum(); System.out.println(" number of rows"+ number); while (rows.hasNext()) { XSSFRow row = ((XSSFRow) rows.next()); int r=row.getRowNum(); System.out.println(" Row NO:"+r); java.util.Iterator<org.apache.poi.ss.usermodel.Cell> cells = row.cellIterator(); while(cells.hasNext()) { XSSFCell cell = (XSSFCell) cells.next(); String Value=cell.getStringCellValue(); System.out.println(Value); } } } catch(Exception e) { e.printStackTrace(); } } } 

正如@ Michael-O在注释中提到的那样,类path中缺lessXML Beans。 XMLBeans库可以在http://xmlbeans.apache.org/find&#x3002;

xml的bean库

你必须在你的构buildpath中包含xmlbeans库。 它通常在你的poi-apache库的ooxml-lib中。