<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          絕了,hutool導(dǎo)出excel 圖片居然沒有調(diào)用方法

          共 2414字,需瀏覽 5分鐘

           ·

          2022-09-17 16:23

          你知道的越多,不知道的就越多,業(yè)余的像一棵小草!

          你來,我們一起精進(jìn)!你不來,我和你的競爭對手一起精進(jìn)!

          編輯:業(yè)余草

          juejin.cn/post/7132050134426189832
          推薦:https://www.xttblog.com/?p=5357
          自律才能自由

          最近同事在做 excel 導(dǎo)出文件,然后有一列是圖片展示,然后我們圖片搞了防盜鏈,如果直接點(diǎn)開鏈接,就是一個(gè)默認(rèn)圖片(無法展示),我們就想著把圖片嵌入 excel 中展示,由于我們框架用的是 hutool 去導(dǎo)出,同事說做不了。然后我點(diǎn)開里面各種類,結(jié)果都沒有 img 的輸入 excel 的方法,氣死我了!

          氣死我了

          騷操作

          其實(shí)我也是一個(gè) cv 工程師,百度找找有沒有大佬已經(jīng)實(shí)現(xiàn)這功能,然后就找到了,不是 hutool 里面的方法,是 poi 包下。

          有輪子先用輪子,沒有輪子再造輪子。

          上操作

          「輸出excel數(shù)據(jù)代碼」

          //寫入數(shù)據(jù)
          writer.write(xx, true);

          「導(dǎo)出類」

          xx 是 List,我們看下 bo 類,我們定義一個(gè)不存在的字段,方便塞入圖片列。

          @AllArgsConstructor
          @NoArgsConstructor
          @Builder
          @Data
          public class BO {

              private String pic;
              
              private String url;

          }

          這個(gè)類里頭有個(gè) url 鏈接字段,pic  是圖片展示的列,url我們是不展示的,所以需要加上下面這段代碼,就是如果這個(gè)字段跟 excel 列不匹配(不展示)的時(shí)候,就不展示出來,不然會展示列名為 url。

          writer.setOnlyAlias(true);

          「輸出圖片」

          好家伙,在輸出數(shù)據(jù)之后,還要特殊處理excel

          for (int i = 0; CollectionUtil.isNotEmpty(xx) && i < xx.size(); i++) {

                  //讀取圖片,這里自行讀取流,代碼做了模糊
                  byte[] pictureData = null;

                  //寫入圖片
                  Sheet sheet = writer.getSheet();
                  Drawing<?> drawingPatriarch = sheet.createDrawingPatriarch();

                  //設(shè)置圖片單元格位置 第5列展示圖片,i是行數(shù)
                  ClientAnchor anchor = drawingPatriarch.createAnchor(00004 , i + 14 + 1, i + 2);
                  //隨單元格改變位置和大小
                  anchor.setAnchorType(ClientAnchor.AnchorType.MOVE_AND_RESIZE);

                  //添加圖片
                  int pictureIndex = sheet.getWorkbook().addPicture(pictureData, HSSFWorkbook.PICTURE_TYPE_JPEG);
                  drawingPatriarch.createPicture(anchor, pictureIndex);
          }

          展示結(jié)果

          excel導(dǎo)出圖片

          吐槽

          我覺得這個(gè)應(yīng)該封裝到 hutool ExcelWriter 方法里頭,這樣才能提高工具類的功能,我相信大部分公司都在用 hutool,畢竟經(jīng)過社區(qū)以及時(shí)間的大量考驗(yàn),框架應(yīng)該更加完善才能滿足開發(fā)者的需求。

          好吧,這就去提個(gè) issue,哈哈~

          社區(qū)提 issue

          給hutool提issue
          hutool糊涂

          我在想,如果我提的不是 issue,而是一個(gè) PR,它是不是就接受了。。。

          瀏覽 42
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  影音先锋男人资源网站 | 手机A片在线观看 | 蜜桃熟女网 | 特级特黄特色大片免费看 | 爆操人妻在线 |