Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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 无法使用apache poi从Excel文件中读取_Java_Excel_Apache_Apache Poi - Fatal编程技术网

Java 无法使用apache poi从Excel文件中读取

Java 无法使用apache poi从Excel文件中读取,java,excel,apache,apache-poi,Java,Excel,Apache,Apache Poi,这是我写的代码 import java.util.*; import java.lang.*; import java.io.*; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; pu

这是我写的代码

import java.util.*;
import java.lang.*;
import java.io.*;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;

public class Main
{
    public static void main (String[] args) throws java.lang.Exception
    {
        File inputFile = new File("./test.xlsx");
        HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(inputFile));
        HSSFSheet sheet = workbook.getSheetAt(0);
        Cell cell;
        Row row;
        Iterator<Row> rowIterator = sheet.iterator();
        while (rowIterator.hasNext()){
            row = rowIterator.next();
            Iterator<Cell> cellIterator = row.cellIterator();
            while (cellIterator.hasNext()){
                cell = cellIterator.next();
                System.out.println(cell.getStringCellValue());
            }
        }
    }
}
import java.util.*;
导入java.lang.*;
导入java.io.*;
导入org.apache.poi.hssf.usermodel.HSSFSheet;
导入org.apache.poi.hssf.usermodel.HSSFWorkbook;
导入org.apache.poi.ss.usermodel.Cell;
导入org.apache.poi.ss.usermodel.Row;
公共班机
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
File inputFile=新文件(“./test.xlsx”);
HSSFWorkbook=新的HSSFWorkbook(新文件InputStream(inputFile));
HSSFSheet sheet=工作簿。getSheetAt(0);
细胞;
行行;
迭代器rowIterator=sheet.Iterator();
while(roweiterator.hasNext()){
行=行迭代器。下一步();
迭代器cellIterator=row.cellIterator();
while(cellIterator.hasNext()){
cell=cellIterator.next();
System.out.println(cell.getStringCellValue());
}
}
}
}
这就是我得到的错误

提供的数据似乎位于Office 2007+XML中。你是 调用POI中处理OLE2 Office文档的部分。你 需要调用POI的不同部分来处理此数据(例如XSSF 而不是HSSF)

问题:我做错了什么?

这可能会帮助您:--

这可能会帮助您:--


如果您试图使用HSSFWorkbook访问.xlsx文件,则需要使用XSSF工作簿而不是HSSFWorkbook。使用HSSFWorkbook,我们可以访问.xls文件


作为参考,您可以阅读

如果您试图使用HSSFWorkbook访问.xlsx文件,则需要使用XSSForkbook而不是HSSFWorkbook。使用HSSFWorkbook,我们可以访问.xls文件


作为参考,您可以阅读

,正如Rahul所说,您正在使用HSSF部件,该部件用于从旧excel(即xls(2007年之前)格式)获取信息

Workbook wb=WorkbookFactory.create(新文件(“/path/to/your/excel/File”);
工作表mySheet=wb.getSheetAt(0);
迭代器rowIter=mySheet.rowitter();
System.out.println(mySheet.getRow(1.getCell(0));

请尝试转换为以上格式,它将同时适用于.xls和.xlsx

,正如Rahul所说,您使用的是HSSF部件,用于从旧excel(即.xls(2007年之前)格式)获取信息

Workbook wb=WorkbookFactory.create(新文件(“/path/to/your/excel/File”);
工作表mySheet=wb.getSheetAt(0);
迭代器rowIter=mySheet.rowitter();
System.out.println(mySheet.getRow(1.getCell(0));

请尝试转换到上面,它将同时适用于.xls和.xlsx

org.apache.poi.ss.usermodel.workbook哪里是WorkbookFactory包Georg.apache.poi.ss.usermodel.WorkbookFactory先生,您是一个传奇。非常感谢。org.apache.poi.ss.usermodel.workbook WorkbookFactory包在哪里。非常感谢你。
file = new File("/yourFile.xlsx");
workBook = WorkbookFactory.create(file);    
sheet  = workBook.getSheetAt(sheetNumber);
Workbook wb = WorkbookFactory.create(new File("/path/to/your/excel/file"));
    Sheet mySheet = wb.getSheetAt(0);
    Iterator<Row> rowIter = mySheet.rowIterator();
    System.out.println(mySheet.getRow(1).getCell(0));