Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JAVA从Excel sheet 2007中读取数据_Java_Excel_Excel 2007_Xlsx - Fatal编程技术网

用JAVA从Excel sheet 2007中读取数据

用JAVA从Excel sheet 2007中读取数据,java,excel,excel-2007,xlsx,Java,Excel,Excel 2007,Xlsx,我在尝试阅读Excel 2007电子表格(.xlsx)时遇到问题。我试图通过使用在JAVA中实现该方法,但出现以下错误: 线程“main”java.lang.NoClassDefFoundError中出现异常: org/apache/xmlbeans/XmlException 这是我的方法: public void No_rows() throws IOException { File inputWorkbook = new File(inputFile); FileInput

我在尝试阅读Excel 2007电子表格(.xlsx)时遇到问题。我试图通过使用在JAVA中实现该方法,但出现以下错误:

线程“main”java.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();
}

这是为了创建和读取*.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();
        }
}
}
公共类Readxlsx{
公共静态void main(字符串[]args){
FileOutputStream=null;
FileInputStream fis=null;
尝试
{
fos=新文件输出流(新文件(“D:\\prac\\sample1.xlsx”);
XSSF工作簿wb=新XSSF工作簿();

对于@Michael-O在评论中提到的(int m=0;m,类路径中缺少XML bean。可以在中找到XMLBeans库。

您必须在构建路径中包含xmlbeans库。它通常位于poi apache库的ooxml库中