英文:
java.lang.NoSuchMethodError when trying to read .xlsx excel file
问题
你好,我试图使用Spring Boot读取XLSX文件,但是出现了错误。以下是我的控制器代码:
@PostMapping("/upload")
public ResponseEntity<?> addRfp(@RequestParam("file") MultipartFile file) throws IOException, InvalidFormatException {
ZipSecureFile.setMinInflateRatio(0);
InputStream inputStream = file.getInputStream();
String originalName = file.getOriginalFilename();
String name = file.getName();
String contentType = file.getContentType();
long size = file.getSize();
FileInputStream fis = (FileInputStream) file.getInputStream();
XSSFWorkbook myWorkBook = new XSSFWorkbook(fis);
XSSFSheet mySheet = myWorkBook.getSheetAt(0);
Iterator<Row> rowIterator = mySheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()) {
case STRING:
System.out.print(cell.getStringCellValue() + "\t");
break;
case NUMERIC:
System.out.print(cell.getNumericCellValue() + "\t");
break;
case BOOLEAN:
System.out.print(cell.getBooleanCellValue() + "\t");
break;
default:
}
}
System.out.println("");
}
return null;
}
错误信息如下:
java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
at org.apache.poi.ooxml.POIXMLTypeLoader.<clinit>(POIXMLTypeLoader.java:43) ~[poi-ooxml-4.1.2.jar:4.1.2]
at org.apache.poi.xssf.model.SharedStringsTable.readFrom(SharedStringsTable.java:123) ~[poi-ooxml-4.1.2.jar:4.1.2]
at org.apache.poi.xssf.model.SharedStringsTable.<init>(SharedStringsTable.java:111) ~[poi-ooxml-4.1.2.jar:4.1.2]
at org.apache.poi.ooxml.POIXMLFactory.createDocumentPart(POIXMLFactory.java:61) ~[poi-ooxml-4.1.2.jar:4.1.2]
at org.apache.poi.ooxml.POIXMLDocumentPart.read(POIXMLDocumentPart.java:684) ~[poi-ooxml-4.1.2.jar:4.1.2]
at org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:180) ~[poi-ooxml-4.1.2.jar:4.1.2]
请问我应该如何解决这个问题?我已经陷入了困境。能有人帮我解决这个问题吗?
谢谢,AMINE
英文:
hello i try to read XLSX file with spring boot but i got error
my controller :
@PostMapping("/upload")
public ResponseEntity<?> addRfp (@RequestParam("file") MultipartFile file) throws IOException, InvalidFormatException {
ZipSecureFile.setMinInflateRatio(0);
InputStream inputStream = file.getInputStream();
String originalName = file.getOriginalFilename();
String name = file.getName();
String contentType = file.getContentType();
long size = file.getSize();
FileInputStream fis = (FileInputStream) file.getInputStream();
XSSFWorkbook myWorkBook = new XSSFWorkbook (fis);
XSSFSheet mySheet = myWorkBook.getSheetAt(0);
Iterator<Row> rowIterator = mySheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType())
{ case STRING:
System.out.print(cell.getStringCellValue() + "\t"); break;
case NUMERIC: System.out.print(cell.getNumericCellValue() + "\t"); break;
case BOOLEAN: System.out.print(cell.getBooleanCellValue() + "\t"); break;
default : } }
System.out.println(""); }
return null;
}
the error is :
java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;
at org.apache.poi.ooxml.POIXMLTypeLoader.<clinit>(POIXMLTypeLoader.java:43) ~[poi-ooxml-4.1.2.jar:4.1.2]
at org.apache.poi.xssf.model.SharedStringsTable.readFrom(SharedStringsTable.java:123) ~[poi-ooxml-4.1.2.jar:4.1.2]
at org.apache.poi.xssf.model.SharedStringsTable.<init>(SharedStringsTable.java:111) ~[poi-ooxml-4.1.2.jar:4.1.2]
at org.apache.poi.ooxml.POIXMLFactory.createDocumentPart(POIXMLFactory.java:61) ~[poi-ooxml-4.1.2.jar:4.1.2]
at org.apache.poi.ooxml.POIXMLDocumentPart.read(POIXMLDocumentPart.java:684) ~[poi-ooxml-4.1.2.jar:4.1.2]
at org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:180) ~[poi-ooxml-4.1.2.jar:4.1.2]
please what i should to do to resolve this i m already blocked now
Can someone please help me to resolve this issue?
Thanks , AMINE
答案1
得分: 0
一切看起来都很好,尝试更新项目,因为似乎库未能正确加载。通过右键单击项目并进行 maven 更新,进入 maven。勾选“永远更新”选项,然后应该可以正常工作。
英文:
Everything looks fine, try updating the project as it looks like the libraries are not loaded properly. Go to maven by right clicking on the project and maven update. Check the box forever update and it should work
专注分享java语言的经验与见解,让所有开发者获益!
评论