android - 使用 Apache poi 和 MS Excel 在 Android 应用程序中插入图像时出现 NoClassDefFoundError

标签 android excel image apache-poi

我想使用 Apache poi 将 PNG 图像插入到我的 Excel 工作表中。

为此,我使用以下代码:

//add picture data to this workbook.
InputStream is = new FileInputStream("/sdcard/MYAPPFOLDER/logo_app.png");
byte[] bytes = IOUtils.toByteArray(is);
int pictureIdx = workbook.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);
is.close();

CreationHelper helper = workbook.getCreationHelper();

// Create the drawing patriarch.  This is the top level container for all shapes. 
Drawing drawing = sheet.createDrawingPatriarch();

//add a picture shape
ClientAnchor anchor = helper.createClientAnchor();
//set top-left corner of the picture,
//subsequent call of Picture#resize() will operate relative to it
anchor.setCol1(0);
anchor.setRow1(0);
Picture pict = drawing.createPicture(anchor, pictureIdx);

//auto-size picture relative to its top-left corner
pict.resize();

但是第一次我遇到了一个错误,我通过添加这个库 commons-codec-1.8.jar 解决了这个错误,现在我遇到了这个错误:

02-21 10:10:51.466: E/AndroidRuntime(31691): FATAL EXCEPTION: main
02-21 10:10:51.466: E/AndroidRuntime(31691): java.lang.NoClassDefFoundError: java.awt.Dimension
02-21 10:10:51.466: E/AndroidRuntime(31691):    at org.apache.poi.ss.util.ImageUtils.getImageDimension(ImageUtils.java:52)
02-21 10:10:51.466: E/AndroidRuntime(31691):    at org.apache.poi.hssf.usermodel.HSSFPicture.getImageDimension(HSSFPicture.java:243)
02-21 10:10:51.466: E/AndroidRuntime(31691):    at org.apache.poi.hssf.usermodel.HSSFPicture.getPreferredSize(HSSFPicture.java:163)

指向这一行:

pict.resize();

如何修复它?

最佳答案

您不能使用涉及图形例程的纯 Java 库 (java.awt),因为 Android 尚未实现它们,因为它使用自己的图形库。最重要的是,您无法在 Android 中使用您想要的库,尽管我确信还有其他方法可以完成您想要完成的任务。

Android 使用一些基本类型,即 ViewCanvasDrawable。看看这些,看看它们是否满足您的需求。

关于android - 使用 Apache poi 和 MS Excel 在 Android 应用程序中插入图像时出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35175379/

相关文章:

excel - 在vba中编写VLOOKUP函数

excel - 将工作表保持在工作簿的首位

html - 移动媒体查询被桌面值覆盖?

CSS:不同屏幕分辨率下的图像位置校正

java - 使用构造函数传递整数

javascript - 有没有办法改变移动键盘上的转到/提交按钮在移动网页上的作用?

Excel密码删除

php - 如何从 mp4 文件生成图像?

Android - 通过引用其他定义的颜色来定义颜色

c# - 如何以编程方式设置 layout_weight?