java 导出excel插入图片
import cn.hutool.core.io.FileUtil; import com.ztool.excel.select.SimpleSelectTool; import org.apache.poi.hssf.usermodel.HSSFClientAnchor; import org.apache.poi.hssf.usermodel.HSSFPatriarch; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.ClientAnchor; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; /** * @author zhangjianshan on 2023-04-30 */ public class PictureTool { public static void main(String[] args) { HSSFWorkbook book = new HSSFWorkbook(); HSSFSheet sheet = book.createSheet("sheetName"); try { //第一种方式: url地址 BufferedImage bufferImg = ImageIO.read(FileUtil.getInputStream("E:\template\fire-1842140.jpg")); // 将图片写入流中 HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); insertImage(book, patriarch, getImageData(bufferImg), 0, 2, 0, 4); SimpleSelectTool.writeFile(book); } catch (IOException e) { e.printStackTrace(); } } private static void insertImage(HSSFWorkbook wb, HSSFPatriarch pa, byte[] data, int startRow, int endRow, int startColumn, int endColumn) { HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 100, (short) startColumn, startRow, (short) endColumn, endRow); anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE); pa.createPicture(anchor, wb.addPicture(data, HSSFWorkbook.PICTURE_TYPE_JPEG)); } private static byte[] getImageData(BufferedImage bi) { try { ByteArrayOutputStream bout = new ByteArrayOutputStream(); ImageIO.write(bi, "PNG", bout); return bout.toByteArray(); } catch (Exception exe) { exe.printStackTrace(); return null; } } }
最终效果
下一篇:
JS实现checkbox的全选和反选