2016-04-12 10 views
0

Ich bin neu in Java, müssen ein Kommentarbild in Microsoft Excel-Zelle hinzufügen mein Code gibt eine Ausnahme zurück, kann jeder helfen? Mein Code in JavaAusnahme beim Einfügen von Bild in Excel Cell

  public static void main(String[] args) throws Exception{ 
      /* Create a Workbook and Worksheet */ 
      HSSFWorkbook my_workbook = new HSSFWorkbook(); 
      HSSFSheet my_sheet = my_workbook.createSheet("MyBanner");    
      /* Read the input image into InputStream */ 
      InputStream image = new FileInputStream("C:/Users/Administrator/Desktop/New folder/Excel/Jellyfish.jpg"); 
      /* Convert Image to byte array */ 
      byte[] bytes = IOUtils.toByteArray(image); 
      /* Add Picture to workbook and get a index for the picture */ 
      int my_picture_id = my_workbook.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG); 
      /* Close Input Stream */ 
      image.close();     
      /* Create the drawing container */ 
      HSSFPatriarch drawing = my_sheet.createDrawingPatriarch(); 
      /* Create an anchor point */ 
      ClientAnchor my_anchor = new HSSFClientAnchor(); 
      /* Define top left corner, and we can resize picture suitable from there */ 
      my_anchor.setCol1(2); 
      my_anchor.setRow1(1);   
      /* Invoke createPicture and pass the anchor point and ID */ 
      HSSFPicture my_picture = drawing.createPicture(my_anchor, my_picture_id); 
      /* Call resize method, which resizes the image */ 
      my_picture.resize();    
      /* Write changes to the workbook */ 
      FileOutputStream out = new FileOutputStream(new File("C:/Users/Administrator/Desktop/New folder/Excel/Book1.xlsx")); 
      my_workbook.write(out); 
      out.close(); 
    } 

es gibt diese Ausnahme

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/digest/DigestUtils at org.apache.poi.hssf.usermodel.HSSFWorkbook.addPicture(HSSFWorkbook.java:1575) at app.App.main(App.java:39) Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.digest.DigestUtils at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 2 more C:\Users\Administrator\AppData\Local\NetBeans\Cache\8.1\executor-snippets\debug.xml:83: Java returned: 1 BUILD FAILED (total time: 0 seconds)

wie man es beheben?

+0

Sie sollten entweder Abhängigkeit 'Apache Commons Codec' in der pom-Datei hinzufügen oder diese Bibliothek hinzufügen – nKognito

+0

' commons-Codec-1.10.jar' Bedürfnisse Classpath im Klassenpfad sein. –

+0

wie man es hinzufügt? –

Antwort

0

Sie könnten versuchen, auf eine solche Art und Weise auch

final FileInputStream stream = 
    new FileInputStream("C:/Users/Administrator/Desktop/New folder/Excel/Jellyfish.jpg"); 
final CreationHelper helper = workbook.getCreationHelper(); 
final Drawing drawing = sheet.createDrawingPatriarch(); 

final ClientAnchor anchor = helper.createClientAnchor(); 
anchor.setAnchorType(ClientAnchor.MOVE_AND_RESIZE); 


    final int pictureIndex = 
    workbook.addPicture(stream, Workbook.PICTURE_TYPE_JPEG); 


    anchor.setCol1(0); 
    anchor.setRow1(LOGO_ROW); // same row is okay 
    anchor.setRow2(LOGO_ROW); 
    anchor.setCol2(1); 
    final Picture pict = drawing.createPicture(anchor, pictureIndex); 
    pict.resize(); 
+0

'HSSFWorkbook' hat kein' addPicture (java.io.InputStream is, int format) '. Nur 'XSSFWorkbook' hat. –

Verwandte Themen