java - xmlobject - xbean jar
java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject Error (6)
Estoy recibiendo un error de seguimiento
Excepción en el hilo "principal" java.lang.NoClassDefFoundError: org / apache / xmlbeans / XmlObject en OrderBook.WriteToExcelSheet.CreateOutPutFile (WriteToExcelSheet.java:20) en OrderBook.MainMethod.main (MainMethod.java:71)
Busqué las razones de este error en línea pero no pude encontrar por qué lo estoy obteniendo.
He incluido los siguientes archivos jar
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
Código:
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();
}
}
}
Al tratar de traducir el archivo Excel con el sufijo .xlsx, debe agregar un jar adicional, xmlbeansxxx.jar. xxxx es una versión, como xmlbeans-2.3.0.jar
Debe incluir xmlbeans-xxx.jar y si ha descargado el archivo binario ZIP de POI, obtendrá el archivo xmlbeans-xxx.jar en la carpeta ooxml-lib (por ejemplo: / poi-3.11 / ooxml-lib)
Este jar se usa para el enlace XML que es aplicable para archivos .xlsx.
Enfrenté una situación similar, por lo que reemplacé todos los archivos jar externos ( poi-bin-3.17-20170915
) y me aseguré de agregar otros archivos jar
presentes en las carpetas lib y ooxml-lib
.
¡¡¡Espero que esto ayude!!!:)
Para todo lo que agrega xmlbeans-2.3.0.jar y no funciona, debe usar HSSFWorkbook en lugar de XSSFWorkbook después de agregar jar.Por ejemplo;
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();
}
Tienes que incluir un frasco más
xmlbeans-2.3.0.jar
Agrega esto y prueba.
Nota: Se requiere para los archivos con formatos .xlsx solamente, no solo para formatos .xls.
tienes que incluir dos archivos jar más.
xmlbeans-2.3.0.jar y dom4j-1.6.1.jar Agregar intento, funcionará.
Nota: Se requiere para los archivos con formatos .xlsx solamente, no solo para formatos .xlt.