请教java导出多张图片到Excel问题!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教java导出多张图片到Excel问题!相关的知识,希望对你有一定的参考价值。
目前我遇到一个难题,就是将多张图片导出到Excel.目前我图片是导出来了,是通过SQL查询出来的结果集,然后遍历结果集循环画图片,但始终是只导出一张图片.求高手指导.
if(dataset.size()>0 || dataset!=null)
HSSFClientAnchor anchor = null;
ByteArrayOutputStream byteArrayOutputStream = null;
for(int i=0;i<dataset.size();i++)
byteArrayOutputStream = new ByteArrayOutputStream();
String imgPathString=dataset.get(0).get("图片").toString();
BufferedImage bufferedImage = ImageIO.read(new File(pathString));
ImageIO.write(bufferedImage, "jpg", byteArrayOutputStream);
anchor = new HSSFClientAnchor(5,0,10,15,(short) 9,i+1,(short) 10,2);//i+1是第一行,按道理说第一次循环是1,第二次是2,如果有2行数据的话,会把第2行的图片导出来,第一行的好像被覆盖了一样,就是这个问题.我要每一行对应的图片都导出来.
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
patriarch.createPicture(anchor, wb.addPicture(byteArrayOutputStream.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class TestExcelImage
static List<BufferedImage> images = new ArrayList<>();
static
try
images.add(ImageIO.read(new File("C:/t/1.jpg")));
images.add(ImageIO.read(new File("C:/t/2.jpg")));
images.add(ImageIO.read(new File("C:/t/3.jpg")));
images.add(ImageIO.read(new File("C:/t/4.jpg")));
images.add(ImageIO.read(new File("C:/t/5.jpg")));
images.add(ImageIO.read(new File("C:/t/6.jpg")));
images.add(ImageIO.read(new File("C:/t/7.jpg")));
images.add(ImageIO.read(new File("C:/t/8.jpg")));
catch (IOException e)
e.printStackTrace();
public static void main(String[] args)
FileOutputStream fileOut = null;
try
// 创建一个工作薄
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("new sheet");
// HSSFRow row = sheet1.createRow(2);
HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
short i = 0;
for (BufferedImage image : images)
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", byteArrayOut);
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) 1, 1 + i, (short) 2, 2 + i);
anchor.setAnchorType(0);
// 插入图片
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
i++;
HSSFRow row = sheet1.createRow(10);
short s = 10;
HSSFCell cell = row.createCell(s);
HSSFCellStyle style = wb.createCellStyle();
HSSFFont font = wb.createFont();
font.setStrikeout(true);
style.setFont(font);
cell.setCellStyle(style);
cell.setCellValue("aaaaa");
fileOut = new FileOutputStream("c:/workbook.xls");
// 写入excel文件
wb.write(fileOut);
fileOut.close();
catch (IOException io)
io.printStackTrace();
System.out.println("io erorr : " + io.getMessage());
finally
if (fileOut != null)
try
fileOut.close();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
简单的写了下。 我机器上可以运行本回答被提问者采纳
如何在PPT中导入导出多张图片?竟然还有这波神操作!
我们都知道PPT是个展示型工具,比如说平时老师讲课会用到PPT,这样对对讲课可以起到一个辅助的作用。那么大家知不知道在PPT中怎样导入和导出多张图片呢?一起给小编来看看吧!
1.批量导入图片
当我们需要做一个PPT文件的时候,可能会用到几张十几张甚至是上百张的图片,这是我们就不能一张一张的将图片给添加进去了。这时,我们先打开PPT,点击【插入】-【相册】-【新建相册】。
之后就会弹出一个【相册】的对话框,我们在对话框中点击一下【文件/磁盘】,选择一下我们需要插入的图片,然后点击【插入】。
接着我们还需要设置一下相册版式,这个可根据我们的需要设置【图片版式】和相框形状。
最后点击一下创建,这样我们就将多张图片给添加进去了,给大家看一下效果图吧!
2.批量导出图片
当我们做好一个PPT文件之后,需要将里面的幻灯片图片都导出来。这个操作其实也是很简单的,我们先点击一下文件,然后是另存为。如我们选择的是桌面,然后在【保存类型】中,选择JPEG文件交换格式。再点击【保存】,选择【所有幻灯片】就可以导出多张图片了。
以上就是小编教给大家怎样在PPT中导入和导出多张图片的具体操作了,有需要的小伙伴赶紧学习一下吧!
以上是关于请教java导出多张图片到Excel问题!的主要内容,如果未能解决你的问题,请参考以下文章
Java web项目从eclipse上移动到tomact服务器上,之路径更改,包括显示图片和导出excel