当前位置: 首页 > 知识库问答 >
问题:

将图像插入Excel单元格时出现异常

彭博厚
2023-03-14

我是Java新手,需要在Microsoft Excel单元格中添加注释图像我的代码返回异常,有人可以帮助吗?我的Java代码

          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();
    }

这是一个例外

线程“main”java中出现异常。lang.NoClassDefFoundError:org/apache/commons/codec/digest/DigestUtils位于org。阿帕奇。波伊。hssf。用户模型。HSSF工作手册。在应用程序中添加图片(HSSFWorkbook.java:1575)。应用程序。main(App.java:39)由:java引起。lang.ClassNotFoundException:org。阿帕奇。平民编解码器。消化java的DigestUtils。网URLClassLoader。java上的findClass(URLClassLoader.java:381)。lang.ClassLoader。sun上的loadClass(ClassLoader.java:424)。杂项。启动器$AppClassLoader。java上的loadClass(Launcher.java:331)。lang.ClassLoader。loadClass(ClassLoader.java:357)。。。还有2个C:\Users\Administrator\AppData\Local\NetBeans\Cache\8.1\executor snippets\debug。xml:83:Java返回:1生成失败(总时间:0秒)

如何修复它?

共有1个答案

巴星华
2023-03-14

你也可以用这种方式试试

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();
 类似资料:
  • 问题内容: 我试图将图像放入带有Java的Excel单元格中,但没有成功,这是我正在使用的代码,但是我唯一要做的就是将图像放入excel工作表中,而不放在指定的单元格中 问题答案: 您已经在做的是将锚定图像定位到左上方的单元格()。然后,您已经将图像调整为原始大小。 如果图像适合该单元格,则必须使用左上单元格 和 右下单元格创建锚点。而且,请勿将图像调整为原始大小。 例: 如果从程序行中删除注释符

  • 在谷歌应用程序脚本中,您可以使用函数(https://developers.google.com/apps-script/reference/spreadsheet/sheet#insertimageblob-column-row)将图像插入谷歌电子表格。 但我没有使用appscript。我正在使用GoogleSheetsAPI(https://developers.google.com/shee

  • Word显示图像有问题。我真的不知道问题出在哪里

  • 我对Eclipse Java编码一无所知。我正在努力完成一个管理库存的项目。我遇到的问题是,当我试图将项目写入excel单元格时,我收到错误消息,称数组超出了界限。 附言:项目和item.get部分名称等都定义在另一个类文件下。请帮忙。谢谢

  • 我正在使用Apache poi-hssf将图片添加到单元格中。该图像是120x100,但无论我做什么,如何调整它的大小,Excel电子表格总是显示它跨越多行,并将其扭曲为比宽度大得多的高度。 我试过所有dx/dy坐标和col/row。位置无关紧要,它的问题是水平拉伸图像。

  • 我编写了以下简单的C#控制台应用程序,用于从Excel工作簿导出所有图表。它工作正常,除非打开文档后图表没有滚动到,在这种情况下会生成一个空的图像文件。 我尝试了几次滚动到该对象的失败尝试;程序底部注释掉的行(