I am getting following error
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject at OrderBook.WriteToExcelSheet.CreateOutPutFile(WriteToExcelSheet.java:20) at OrderBook.MainMethod.main(MainMethod.java:71)
I looked for the reasons for this error online but couldn't find why I am getting it.
I have included the following jar files
poi-3.9-20121203.jar, poi-excelant-3.9-20121203.jar, poi-examples-3.9-20121203.jar, poi-ooxml-3.9-20121203.jar, poi-ooxml-schemas-3.9-20121203.jar, poi-scratchpad-3.9-20121203.jar Code:
public class WriteToExcelSheet { public static Map < Integer, Object[] > data = new TreeMap < Integer, Object[] > (); public static void CreateOutPutFile() { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet("Orderbook Stats"); //This data needs to be written (Object[]) //Iterate over data and write to sheet Set < Integer > keyset = data.keySet() int rownum = 0; for (Integer key: keyset) { Row row = sheet.createRow(rownum++); Object[] objArr = data.get(key); int cellnum = 0; for (Object obj: objArr) { Cell cell = row.createCell(cellnum++); if (obj instanceof String) cell.setCellValue((String) obj); else if (obj instanceof Integer) cell.setCellValue((Integer) obj); } } try { //Write the workbook in file system System.out.println("OutPutStats.xlsx writing.............................."); FileOutputStream out = new FileOutputStream(new File("FileLocation/o.xlxs")); workbook.write(out); out.close(); System.out.println("OutPutStats.xlsx written successfully on disk."); } catch (Exception e) { e.printStackTrace(); } } } 9 Answers
You have to include one more jar.
xmlbeans-2.3.0.jar Add this and try.
Note: It is required for the files with .xlsx formats only, not for just .xls formats.
9you have to include two more jar files.
xmlbeans-2.3.0.jar and dom4j-1.6.1.jar Add try it will work.
Note: It is required for the files with .xlsx formats only, not for just .xlt formats.
When trying to translate Excel file with .xlsx suffix, you need to add additional jar, xmlbeansxxx.jar. xxxx is version, such as xmlbeans-2.3.0.jar
For all that you add xmlbeans-2.3.0.jar and it is not working,you must use HSSFWorkbook instead of XSSFWorkbook after add jar.For instance;
Workbook workbook = new HSSFWorkbook(); Sheet listSheet = workbook.createSheet("Kişi Listesi"); int rowIndex = 0; for (KayitParam kp : kayitList) { Row row = listSheet.createRow(rowIndex++); int cellIndex = 0; row.createCell(cellIndex++).setCellValue(kp.getAd()); row.createCell(cellIndex++).setCellValue(kp.getSoyad()); row.createCell(cellIndex++).setCellValue(kp.getEposta()); row.createCell(cellIndex++).setCellValue(kp.getCinsiyet()); row.createCell(cellIndex++).setCellValue(kp.getDogumtarihi()); row.createCell(cellIndex++).setCellValue(kp.getTahsil()); } try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); workbook.write(baos); AMedia amedia = new AMedia("Kisiler.xls", "xls", "application/file", baos.toByteArray()); Filedownload.save(amedia); baos.close(); } catch (Exception e) { e.printStackTrace(); } You need to include xmlbeans-xxx.jar and if you have downloaded the POI binary zip, you will get the xmlbeans-xxx.jar in ooxml-lib folder (eg: \poi-3.11\ooxml-lib)
This jar is used for XML binding which is applicable for .xlsx files.
I faced a similar situation, so i replaced all the external jar files(poi-bin-3.17-20170915) and make sure you add other jar files present in lib and ooxml-lib folders.
Hope this helps!!!:)
I was working with talend V7.3.1 and I had poi version "4.1.0" and including xml-beans from the list of dependencies didnt fix my problem (i.e: 2.3.0 and 2.6.0).
It was fixed by downloading the jar "xmlbeans-3.0.1.jar" and adding it to the project If to do this right way, you need to create a maven project and put all depenencies into pom.xml file, dependencies for maven you can google, for example: ?
If to do this hardcore way, download POI library binary files and add all the .jar files from all of the folders (for POI 5.0.0) this is (auxiliary, ooxml-lib, lib) folders and root catalog. In my case it works, if you don't want to figure out what library relate for what.
Something like that:
ClassNotFoundException is thrown when the class is not found in the classpath. Adding the following jar(contains the definition of the XmlObject interface) will solve the problem
xmlbeans-x.y.z.jar You can download the latest xmlbeans jar file at the following link
If you are working with the apache poi library make sure you add jars in the lib and ooxml-lib folders.
2