Excel导出图片

var path = HttpContext.Current.Server.MapPath(logoPath);
if (!string.IsNullOrEmpty(path) && File.Exists(path))
{
byte[] bytes = System.IO.File.ReadAllBytes(path);
int pictureIdx = workbook.AddPicture(bytes, PictureType.JPEG);
ISheet sheet = workbook.GetSheetAt(0);
if (sheet != null)
{
XSSFDrawing drawing = (XSSFDrawing) sheet.CreateDrawingPatriarch();
/* Create an anchor point /
XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 32, 32,0, 0, 1, 1);
/
Invoke createPicture and pass the anchor point and ID */
XSSFPicture picture = (XSSFPicture) drawing.CreatePicture(anchor, pictureIdx);
}
}
插入的图片被拉伸填充在HSSFClientAnchor指定的区域。有时可能我们并不需要拉伸的效果,怎么办呢?很简单,在最后加上这样一句用来自动调节图片大小:

picture.Resize();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java Excel导出图片可以通过使用POI和JFreeChart等库来实现。首先需要创建一个Excel工作簿,然后在特定位置上插入图片。我们可以使用POI库中的HSSFWorkbook和HSSFPatriarch类来实现,HSSFWorkbook用于创建工作簿,HSSFPatriarch用于插入图片。 使用JFreeChart库来生成图表并将其保存为图片。然后可以使用Java将图像对象读取并插入到Excel单元格中。这可以通过将图像数据转换为字节数组并将其插入到单元格中来完成。 以下是大致的实现步骤: 1. 创建Excel工作簿 HSSFWorkbook workbook = new HSSFWorkbook(); 2. 创建一个工作表 HSSFSheet sheet = workbook.createSheet("Sheet1"); 3. 创建一个HSSFPatriarch对象 HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); 4. 加载将要插入的图片 File imageFile = new File("image.png"); FileInputStream fis = new FileInputStream(imageFile); byte[] imageData = IOUtils.toByteArray(fis); 5. 创建HSSFClientAnchor对象,设置图片位置和大小 HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) 1, 1, (short) 4, 10); anchor.setAnchorType(2); 6. 插入图片并返回图片的ID int pictureIndex = workbook.addPicture(imageData, Workbook.PICTURE_TYPE_PNG); HSSFPicture picture = patriarch.createPicture(anchor, pictureIndex); 7. 保存Excel文件 FileOutputStream fos = new FileOutputStream(new File("output.xlsx")); workbook.write(fos); fos.close(); 这样就可以将图片保存到Excel文件中了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值