Har*_*hal 1 java jar xlsx apache-poi
我无法xlsx使用Java 读取文件,无法Exception在创建对象XSSFWorkbook(fis)的那一行中找到。
HashMap<Short, String> keyMap = new HashMap<Short, String>();
HashMap<String, String> valueMap = null;
ArrayList<HashMap<String, String>> rowList = new ArrayList<HashMap<String, String>>();
try {
FileInputStream fis = new FileInputStream(fileName);
String fileExtn = getFileExtension(fileName);
Workbook xssfWorkBook ;
HSSFWorkbook hssfWorkBook ;
Sheet sheet=null;
if (fileExtn.equalsIgnoreCase("xlsx"))
{
log.debug("Before creating WorkBook");
xssfWorkBook = new XSSFWorkbook(fis);
log.debug("xssfWorkBook object created");
sheet = xssfWorkBook.getSheetAt(0);
}else if (fileExtn.equalsIgnoreCase("xls"))
{
hssfWorkBook = new HSSFWorkbook(fis);
sheet = (Sheet) hssfWorkBook.getSheetAt(0);
}
Iterator<Row> rows = sheet.rowIterator();
int rowCount = 0;
while (rows.hasNext()) {
if (rowCount == 0) {
Row row = rows.next();
Iterator<Cell> cells = row.cellIterator();
short cellCounter = 1;
while (cells.hasNext()) {
Cell cell = cells.next();
String cellValue = getCellValueAsString(cell);
keyMap.put(cellCounter, cellValue);
cellCounter++;
}
} else {
valueMap = new HashMap<String, String>();
Row row = rows.next();
Iterator<Cell> cells = row.cellIterator();
short cellCounter = 1;
while (cells.hasNext()) {
Cell cell = cells.next();
String cellValue = getCellValueAsString(cell);
valueMap.put(keyMap.get(cellCounter), cellValue);
cellCounter++;
}
rowList.add(valueMap);
}
rowCount++;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
log.error("FileNotFoundException" + e);
throw new Exception("FileNotFoundException while reading Excel file, Message <" + e.getMessage() + ">");
} catch (IOException e) {
e.printStackTrace();
log.error("IOException" +e);
throw new Exception("IOException while reading Excel file, Message <" + e.getMessage() + ">");
}catch(Exception e){
e.printStackTrace();
throw new Exception("Exception while reading Excel file, Message <" + e.getMessage() + ">");
}
Run Code Online (Sandbox Code Playgroud)
作为stackTrace获得以下异常是:
位于org.apache.poi.POIXMLDocumentPart。(POIXMLDocumentPart.java:63)处org.apache.poi.openxml4j.opc.OPCPackage.getPart(OPCPackage.java:562)处的java.lang.NullPointerException 。(POIXMLDocument.java:58)(位于org.apache.poi.xssf.usermodel.XSSFWorkbook。(XSSFWorkbook.java:186)位于com.covad.portlet.mars.util.ExcelReader.readExcel(ExcelReader.java:72)
小智 6
在确保将文件另存为ExcelWorkbook(.xlsx)之前,我曾遇到过此问题,如果将文件另存为严格打开XML SpreadSheet( .xlsx),则可能会发生此问题,它们的扩展名相同,但内部结构可能会有所不同而且POI似乎不支持它;要解决文件上的问题,请将其重新保存为ExcelWorkbook(*。xlsx)。我希望这可以解决您的问题。
| 归档时间: |
|
| 查看次数: |
1776 次 |
| 最近记录: |