我正在使用以下jar文件:
dom4j-1.6.1.jar
poi-3.9-20121203.jar
poi-ooxml-3.9-20121203.jar
poi-ooxml-schemas-3.9-20121203.jar
xmlbeans-2.3.0.jar
Run Code Online (Sandbox Code Playgroud)
码:
package ExcelTest;
import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class Test
{
public static void main(String[] args)
{
try
{
FileInputStream file = new FileInputStream(new File("G:\\Selenium Jar Files\\TestData\\Data.xls"));
//Create Workbook instance holding reference to .xlsx file
XSSFWorkbook workbook = new XSSFWorkbook(file);
//Get first/desired sheet from the workbook
XSSFSheet sheet = workbook.getSheetAt(0);
//Iterate through each rows one by one
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext())
{
Row row = rowIterator.next();
//For each row, iterate through all the columns
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext())
{
Cell cell = cellIterator.next();
//Check the cell type and format accordingly
switch (cell.getCellType())
{
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue() + "t");
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue() + "t");
break;
}
}
System.out.println("");
}
file.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我编译时,我收到以下错误:
org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:41)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:218)
at ExcelTest.Test.main(Test.java:21)
Caused by: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13]
at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:199)
at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:665)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:274)
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39)
... 2 more
Run Code Online (Sandbox Code Playgroud)
我已经通过链接但无法解决问题. 使用Apache POI读取xlsx文件时获取异常(org.apache.poi.openxml4j.exception - 无内容类型[M1.13])?
谁能帮帮我吗?
Pop*_*ibo 96
您正在尝试xls使用显式实现poi类来阅读xlsx.
G:\ Selenium Jar Files\TestData\Data.XLS
通过使用共享接口,使用HSSFWorkbook和HSSFSheet类或使您的实现更通用;
更改:
XSSFWorkbook workbook = new XSSFWorkbook(file);
Run Code Online (Sandbox Code Playgroud)
至:
org.apache.poi.ss.usermodel.Workbook workbook = WorkbookFactory.create(file);
Run Code Online (Sandbox Code Playgroud)
并改变:
XSSFSheet sheet = workbook.getSheetAt(0);
Run Code Online (Sandbox Code Playgroud)
至:
org.apache.poi.ss.usermodel.Sheet sheet = workbook.getSheetAt(0);
Run Code Online (Sandbox Code Playgroud)
Abh*_*hah 12
您正在尝试访问XLS文件.但是,您正在使用XSSFWorkbook和XSSFSheet类对象.这些类主要用于XLSX文件.
对于XLS文件:HSSFWorkbook&HSSFSheet
对于XLSX文件:XSSFSheet&XSSFSheet
所以代替XSSFWorkbook使用HSSFWorkbook和代替XSSFSheet使用HSSFSheet.
因此,在进行更改后,您的代码应如下所示:
HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95983 次 |
| 最近记录: |