`
Clover_whd
  • 浏览: 14437 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Excel插入图片

 
阅读更多

 场景:将Excel中插入图片,效果如下:

问题:1)图片尺寸,在实现过程中可设置图片尺寸大小,或保留原使图片,在设置图片尺寸时最大宽度为255(没有查到为何这样限制)。保留原图,图片尺寸又太大,所以决定先将图片抽点成合适尺寸,然后采用保留原始图片,同时如果想达到图片在特定单元格内除代码处理外需要先将Excel模板单元格的尺寸设置好,方法选中需要设置的行,右键设置行高。

 

方法一(实现:poi3.10):

     

InputStream is = new FileInputStream("读入的Excel模板");
     HSSFWorkbook wb = new HSSFWorkbook(is);
     HSSFSheet sheet = (HSSFSheet) wb.getSheetAt(0);
  
     ByteArrayOutputStream bos = new ByteArrayOutputStream();
     BufferedImage BufferImg = ImageIO.read(new File("插入图片所在的地址"));
     ImageIO.write(BufferImg, "JPEG", bos);
    //public HSSFClientAnchor(int dx1,int dy1,int dx2,int dy2,short col1,int row1,short col2,int row2)
    HSSFClientAnchor anchor = new HSSFClientAnchor(0,0,200,200,(short) 5,4,(short)5,4);
    HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
    patriarch.createPicture(anchor,
    //wb.addPicture(bos.toByteArray(),wb.PICTURE_TYPE_JPEG));         //根据固定宽度
    wb.addPicture(bos.toByteArray(),wb.PICTURE_TYPE_JPEG)).resize(1); //保持原图:
    OutputStream os = new FileOutputStream("生成的Excel路径");
        wb.write(os);
        is.close();
        os.flush();
        os.close();

  

方法二:jxl读取模板,在图片所在列填充图片地址,在读入该Excel将地址转换成图片

  

//templateFileName excel模板, beans插入到Excel的数据Map, destFileName 输出到的模板,
  Configuration config = new Configuration();
  XLSTransformer transformer = new XLSTransformer(config);
  transformer.transformXLS(templateFileName, beans, destFileName);
  InputStream is = new FileInputStream(destFileName);
  Workbook resultWorkbook = WorkbookFactory.create(is);
  Iterator rowIter = resultWorkbook.getSheetAt(0).rowIterator();
  while (rowIter.hasNext()) {
   HSSFRow row = (HSSFRow) rowIter.next();
   Iterator cellIter = row.cellIterator();
   while (cellIter.hasNext()) {
    HSSFCell cell = (HSSFCell) cellIter.next();
    final String IMG_PREFIX = "#IMG#";
    if (cell.toString().startsWith(IMG_PREFIX)) {
     String cellValue = cell.toString();
     cell.setCellValue("");
     String imagePath = cellValue.replaceFirst(IMG_PREFIX, "");
     File imageFile = new File(imagePath);
     if (imageFile.exists()) {

      ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
      BufferedImage bufferImg = ImageIO.read(imageFile);
      ImageIO.write(bufferImg, "jpg", byteArrayOut);
      byte[] imgBytes = byteArrayOut.toByteArray();
      int pictureIdx = resultWorkbook.addPicture(imgBytes, Workbook.PICTURE_TYPE_JPEG);
      CreationHelper helper = resultWorkbook.getCreationHelper();

      Drawing drawing = resultWorkbook.getSheetAt(0).createDrawingPatriarch();
      ClientAnchor anchor = helper.createClientAnchor();
      anchor.setCol1(cell.getColumnIndex());
      anchor.setRow1(cell.getRowIndex());
      Picture pict = drawing.createPicture(anchor, pictureIdx);
      pict.resize();
     }
    }
   }
  }
  FileOutputStream fileOut = new FileOutputStream("D:\\333.xls");
  resultWorkbook.write(fileOut);
  fileOut.close();

  

注意:要在Excel模板中图片所在位置用表达式进行读取:#IMG#${图片路径值}

 

 

  • 大小: 74.3 KB
分享到:
评论

相关推荐

    使用EXCEL插入图片.avi

    使用EXCEL插入图片

    设置Excel插入图片的透明色.rar

    这个名为"设置Excel插入图片的透明色.rar"的压缩包文件包含了一个名为"25.2.7设置透明色.xls"的工作簿,很显然,它提供了关于如何在Excel中设置图片透明色的教程。现在,让我们深入探讨一下这个知识点。 首先,我们...

    POI向excel中插入图片

    在本文中,我们将深入探讨如何使用POI库向Excel工作簿中插入图片。这将涵盖相关的API,步骤以及一些实用技巧。 首先,我们需要理解Excel的内部结构。在Excel文件中,图片是以OLE对象的形式存储的。POI提供了...

    Excel插入图片的调整.rar

    以下是对Excel插入图片调整功能的详细解读: 1. 插入图片:首先,用户可以在Excel工作表的任意位置通过“插入”菜单选择“图片”,从本地文件或网络资源中选取图片。图片一旦插入,就可以自由拖动以改变位置,或...

    JavaScript 使用ActiveX实现在Excel文件中插入图片

    JavaScript 使用ActiveX实现在Excel文件中插入图片

    C#工程向excel中插入图片

    在C#编程环境中,利用Microsoft Office Interop库可以实现向Excel工作簿中插入图片的功能。这个项目"OfficeRedevelopment"就是针对这一需求而设计的,适用于VS2010及更高版本的Visual Studio。下面将详细介绍如何在...

    DataGridView 添加图片 导出 excel 插入图片

    对于图片,我们需要将它们保存到工作簿的目录下,然后在`Excel`中插入超链接指向这些图片。 ```csharp using Excel = Microsoft.Office.Interop.Excel; // 创建Excel应用程序 Excel.Application excelApp = new ...

    java实现在Excel中插入图片

    总结起来,Java实现Excel中插入图片的核心步骤包括:导入Apache POI库,创建并操作工作簿和工作表,读取和创建图片对象,创建绘图工作表,设置图片位置,最后保存工作簿。在实际开发中,可能还需要处理图片格式转换...

    Excel VBA_插入图片实例集锦.doc

    Excel VBA 插入图片实例集锦 本文档主要介绍了使用 Excel VBA 来插入图片的实例集锦,涵盖了批量插入图片、合并单元格、删除shape对象、添加图片到形状区域等多个方面的知识点。 插入图片 在 VBA 中,可以使用 `...

    在C#中写Excel文件并插入图片(附源码)

    功能说明:包含对工作表、单元格的常用操作,重点包含插入图片的功能 属性:普通类 其他:需要在工程中添加COM组件的引用:Microsoft Excel 12.0 Object Library (注:12.0是Excel2007的版本号,如果是2003...

    excel2007插入图片

    在Excel 2007中插入图片是进行数据可视化或创建报告时常用的功能。这个过程简单易行,但包含了一些可以提升工作效率和效果的小技巧。下面将详细介绍如何在Excel 2007中插入图片,并探讨相关的知识点。 首先,打开...

    C#向Excel报表中插入图片的2种方法

    ### C# 向 Excel 报表中插入图片的两种方法详解 #### 一、背景介绍 在日常工作中,我们经常需要处理Excel文件,特别是在需要将数据可视化时,将图片插入Excel文档可以使得报告更加生动直观。本文将详细介绍两种在C#...

    EXCEL文件中用程序插入图片

    在用labview做工程时,少不了要做报表。报表常常会有各种图表。在此写一段小程序以共分享。

    asp.net导出excel(带图片)

    ### 知识点二:在 Excel 中插入图片 1. **确定图片路径**: - 示例中通过字符串拼接的方式获取图片的完整路径,如 `"E:\\վ\\xunyuan\\Web\\upload\\" + dt.Rows[i]["a1"].ToString().Substring(7);`。 - 注意...

    EXCEL添加图片放大效果不用超连接

    在Excel中,我们通常会遇到需要插入图片的情况,如数据可视化、报告美化等。而有时候,为了更好地展示细节,我们希望点击图片时能放大显示,但又不希望通过超链接来实现这一功能。本文将详细讲解如何在Excel中为图片...

    Visual C++源代码 193 如何向Excel文件导入图像文件

    Visual C++源代码 193 如何向Excel文件导入图像文件Visual C++源代码 193 如何向Excel文件导入图像文件Visual C++源代码 193 如何向Excel文件导入图像文件Visual C++源代码 193 如何向Excel文件导入图像文件Visual ...

    利用java往excel中插入图片

    本篇文章将详细介绍如何利用Java和Apache POI库向Excel工作表中插入图片。 首先,我们需要理解Apache POI的工作原理。POI提供了一个名为HSSFPatriarch的类,它是Excel中的图形绘制容器,可以用于插入图片。对于....

    C++ 操作 Excel(Unicode版本)

    介绍:c++ 操作Excel,支持读写,插入图片,单元格合并,颜色字体设置等等, 使用后不会有EXCEL.EXE进程存在,可以直接作为第三方库使用,附件是完整的项目,自测多次通过。如有问题,请交流讨论,谢谢!

    Qt中使用QAxObject操作Excel文件插入散点图添加趋势线

    另外,还实现了如何在Excel中插入散点图图表并添加趋势线,获取趋势线方程。 可以供进一步开发参考之用。 QAxContainer不包含在QtCore里面,所以要使用这里的代码的话还必须要在.pro文件中添加CONFIG+=qaxcontainer...

    C#创建 读 写 Excel 在Excel中插入图片代码

    这篇教程将专注于如何使用C#创建、读取、写入Excel文件,并且重点讲解如何在Excel中插入图片。我们将通过COM(Component Object Model)接口来实现这一功能,这是微软提供的一个允许不同应用程序之间交互的技术。 ...

Global site tag (gtag.js) - Google Analytics