use*_*021 0 java database eclipse excel apache-poi
当我尝试在POI中打开.xlsx文件时,我得到一个例外:
java.lang.IllegalArgumentException: The supplied POIFSFileSystem does not contain a BIFF8 'Workbook' entry. Is it really an excel file?
at org.apache.poi.hssf.usermodel.HSSFWorkbook.getWorkbookDirEntryName(HSSFWorkbook.java:223)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:245)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:188)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:170)
InputStream input = new BufferedInputStream( new FileInputStream(fileName));
POIFSFileSystem file = new POIFSFileSystem( input );
//Create Workbook instance holding reference to .xls file
HSSFWorkbook wb = new HSSFWorkbook(file);
//Get first/desired sheet from the workbook
HSSFSheet sheet = wb.getSheetAt(0);
//Iterate through each rows one by one
Iterator<Row> rowIterator = sheet.iterator();
Run Code Online (Sandbox Code Playgroud)
只是试图读取.xls文件包含但无法打开它的数据!
不要HSSFWorkbook在.xlsx文件上创建.An HSSFWorkbook表示.xls文件,XSSFWorkbook表示.xlsx文件.
事实上,通常你的代码甚至不需要知道它正在使用它.创建你Workbook的WorkbookFactory,就像Busy Developer's Guide中的这个例子所示:
// Use a file
Workbook wb = WorkbookFactory.create(new File("MyExcel.xls"));
// Use an InputStream, needs more memory
Workbook wb = WorkbookFactory.create(new FileInputStream("MyExcel.xlsx"));
Run Code Online (Sandbox Code Playgroud)
如果必须,您可以XSSFWorkbook直接创建:
XSSFWorkbook wb = new XSSFWorkbook(inputStream); // You can use a FileInputStream
Run Code Online (Sandbox Code Playgroud)
或者用OPCPackage.
OPCPackage pkg = OPCPackage.open(myInputStream);
XSSFWorkbook wb = new XSSFWorkbook(pkg);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2668 次 |
| 最近记录: |