2012-05-13 6 views
0

Android에서 Excel에서 이미지를 내보내려면 다음 코드를 시도했지만 오류가 있습니다. logcat 복사 중 ... 제발 도와주세요 !!Android에서 이미지를 Excel로 내보낼 수 없습니다.

코드 :

 package com.android.testexcel; 

     import java.io.ByteArrayOutputStream; 
     import java.io.FileInputStream; 
     import java.io.FileOutputStream; 
     import java.io.IOException; 

     import org.apache.poi.hssf.usermodel.HSSFClientAnchor; 
     import org.apache.poi.hssf.usermodel.HSSFPatriarch; 
     import org.apache.poi.hssf.usermodel.HSSFSheet; 
     import org.apache.poi.hssf.usermodel.HSSFWorkbook; 

     public class MyWorkBook { 
      void writeImageToExcel(String filePath, String imageFileName) { 
       int col = 1, row = 1; 
       HSSFWorkbook wb = new HSSFWorkbook(); 
       HSSFSheet testsheet = wb.createSheet("test"); 
       System.out.println("The work book is created"); 
       try { 
        FileOutputStream fos = new FileOutputStream(filePath); 
        System.out.println("File sample.xls is created"); 
        FileInputStream fis = new FileInputStream(imageFileName); 
        ByteArrayOutputStream img_bytes = new ByteArrayOutputStream(); 
        int b; 
        while ((b = fis.read()) != -1) 
         img_bytes.write(b); 
        fis.close(); 
        HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, 
          (short) col, row, (short) ++col, ++row); 
        int index = wb.addPicture(img_bytes.toByteArray(), 
          HSSFWorkbook.PICTURE_TYPE_JPEG); 
        HSSFSheet sheet = wb.getSheet("test"); 
        HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); 
        patriarch.createPicture(anchor, index); 
        anchor.setAnchorType(2); 
        wb.write(fos); 
        System.out.println("Writing data to the xls file"); 
        fos.close(); 
        System.out.println("File closed"); 
       } catch (IOException ioe) { 

        System.out 
          .println("Hi ! You got an exception. " + ioe.getMessage()); 
        ioe.printStackTrace(); 
       } 
      } 
     }// end of class MyWorkBook 

로그 캣 : 사전에

05-13 19:11:47.665: E/AndroidRuntime(7288): FATAL EXCEPTION: main 05-13 19:11:47.665: E/AndroidRuntime(7288): java.lang.NoClassDefFoundError: org.apache.commons.codec.digest.DigestUtils 05-13 19:11:47.665: E/AndroidRuntime(7288): at org.apache.poi.hssf.usermodel.HSSFWorkbook.addPicture(HSSFWorkbook.java:1580) 05-13 19:11:47.665: E/AndroidRuntime(7288): at com.android.testexcel.MyWorkBook.writeImageToExcel(MyWorkBook.java:30) 05-13 19:11:47.665: E/AndroidRuntime(7288): at com.android.testexcel.MainActivity.onClick(MainActivity.java:71) 05-13 19:11:47.665: E/AndroidRuntime(7288): at android.view.View.performClick(View.java:2408) 05-13 19:11:47.665: E/AndroidRuntime(7288): at android.view.View$PerformClick.run(View.java:8816) 05-13 19:11:47.665: E/AndroidRuntime(7288): at android.os.Handler.handleCallback(Handler.java:587) 05-13 19:11:47.665: E/AndroidRuntime(7288): at android.os.Handler.dispatchMessage(Handler.java:92) 05-13 19:11:47.665: E/AndroidRuntime(7288): at android.os.Looper.loop(Looper.java:123) 05-13 19:11:47.665: E/AndroidRuntime(7288): at android.app.ActivityThread.main(ActivityThread.java:4627) 05-13 19:11:47.665: E/AndroidRuntime(7288): at java.lang.reflect.Method.invokeNative(Native Method) 05-13 19:11:47.665: E/AndroidRuntime(7288): at java.lang.reflect.Method.invoke(Method.java:521) 05-13 19:11:47.665: E/AndroidRuntime(7288): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 05-13 19:11:47.665: E/AndroidRuntime(7288): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 05-13 19:11:47.665: E/AndroidRuntime(7288): at dalvik.system.NativeStart.main(Native Method)

감사합니다, 인 Hemant하여 오류의 중요한 부분이있다

답변

0

:

java.lang.NoClassDefFoundError: org.apache.commons.codec.digest.DigestUtils 

프로젝트에 Commons 코덱을 포함시켜야합니다. POI의 모든 다른 비트의 종속성 목록은 Apache POI Components Page을 참조하십시오. (또는 Maven을 사용하는 경우 처리합니다.)

+0

이 문제는 http://stackoverflow.com/questions/9126567/method-not-found-using-digestutils-in-android와 비슷합니다. 나는 여전히 소스 파일을 편집하는 최선의 방법을 찾을 수 없다. 이걸로 도울 수 있니? – Hemant

관련 문제