最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android利用POI實現(xiàn)將圖片插入到Excel

 更新時間:2023年11月09日 13:56:35   作者:芝麻粒兒  
這篇文章主要為大家詳細介紹了Android如何利用POI實現(xiàn)將圖片插入到Excel,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

問題

前兩天有個小工具的開發(fā),實現(xiàn)自動化將Excel中的圖片鏈接Down下來然后插入到Excel表格中。朋友一直維護著任務類的(就那種打分評分啊,刷好評啊那些)。她量大,需要審核,靠人力實在是勞累。所以我研究了自動化。

解決

實現(xiàn)插入圖片有兩種方式

方式一

直接插入到指定單元格,該方式適用于 Java 端,也就是在 PC上用,Android 因為缺少 resize的內容會報錯。博主沒找那么多資料看如何解決,我就直接用了方式二,支持Android的。

    /**
    * @param workbook  workbook對象
    * @param sheet   工作簿對象
    * @param fileUrl  URL
    * @param row  第多少行
    * @param col  第多少列
    * @param scaleX   X軸
    * @param scaleY   Y軸
     */
    public static void picture2(Workbook workbook, Sheet sheet, String fileUrl, int row, int col, double scaleX, double scaleY) {
        try {
            //防止URL地址有中文,解碼
            String head = fileUrl.substring(0, fileUrl.lastIndexOf("/")+1);
            String suffix = fileUrl.substring(fileUrl.lastIndexOf("/")+1);
            String link = head + URLEncoder.encode(suffix,"UTF-8");
            URL url = new URL(link);  // 構造URL
            URLConnection con = url.openConnection(); // 打開連接
            con.setConnectTimeout(8 * 1000);   //設置請求超時
            InputStream is = con.getInputStream();  // 輸入流
            byte[] bytes = IOUtils.toByteArray(is);
            @SuppressWarnings("static-access")
            int pictureIdx = workbook.addPicture(bytes, workbook.PICTURE_TYPE_PNG); //參數二是圖片格式 還有jpg格式等
            CreationHelper helper = workbook.getCreationHelper();
            Drawing drawing = sheet.createDrawingPatriarch();
            ClientAnchor anchor = helper.createClientAnchor();
            anchor.setCol1(col); // 圖片插入坐標
            anchor.setRow1(row);
            Picture pict = drawing.createPicture(anchor, pictureIdx); // 插入圖片
            pict.resize(scaleX, scaleY);  // 這個方法在 Android 端會造成崩潰。
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

方式二

雖然復雜點,但是無論是多端還是定制性都更強一些。該方式是插入坐標,坐標稍微復雜些。

    public static void picture(Workbook workbook, Sheet sheet, String fileUrl, String fileType, int row, int col) {
        try {
            Drawing patriarch = sheet.createDrawingPatriarch();
            URL url = new URL(fileUrl);  // 構造URL
            URLConnection con = url.openConnection();   // 打開連接
            con.setConnectTimeout(8 * 1000);  //設置請求超時
            InputStream is = con.getInputStream();    // 輸入流
            ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
            BufferedImage bufferImg = ImageIO.read(is);
            ImageIO.write(bufferImg, "JPEG", byteArrayOut);
            bufferImg.flush();
            byteArrayOut.flush();
            XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0,( short ) 0, 0, ( short ) 5, 8);
            patriarch.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));   //參數二是圖片格式 還有png格式等
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

主要解釋一下定位圖片位置函數 ClientAnchor 的八個參數int dx1, int dy1, int dx2, int dy2, short col1, int row1, short col2, int row2

前四個表示的是 excel 邊框的內距離,我們通常情況下都是0。

重點要看后四個參數

short col1, int row1, short col2, int row2

前兩個表示圖片左上角所在的單元格左上角的位置,這個不難理解。

后兩個表示圖片右下角所在的單元格左上角的位置,這個要特別留意。

橫向的 A B C D列 是從0開始數的,圖中 C是 2 豎著的是 4 ,自然起始左上角就是 2 ,4 。 右下角是同理

到此這篇關于Android利用POI實現(xiàn)將圖片插入到Excel的文章就介紹到這了,更多相關Android圖片插入Excel內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Android實現(xiàn)點擊獲取驗證碼倒計時效果

    Android實現(xiàn)點擊獲取驗證碼倒計時效果

    這篇文章主要介紹了Android實現(xiàn)點擊獲取驗證碼倒計時效果,這種效果大家經常遇到,想知道如何實現(xiàn)的,請閱讀本文
    2016-08-08
  • Andriod Studio實現(xiàn)保存QQ密碼功能(案例代碼詳解)

    Andriod Studio實現(xiàn)保存QQ密碼功能(案例代碼詳解)

    這篇文章主要介紹了Andriod Studio實現(xiàn)保存QQ密碼功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • 藍牙原理Android代碼實現(xiàn)

    藍牙原理Android代碼實現(xiàn)

    這篇文章主要為大家詳細介紹了藍牙原理Android代碼實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Flutter常用的布局和事件示例詳解

    Flutter常用的布局和事件示例詳解

    這篇文章主要給大家介紹了關于Flutter常用的布局和事件的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Flutter具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • Android編程之短信竊聽器實現(xiàn)方法

    Android編程之短信竊聽器實現(xiàn)方法

    這篇文章主要介紹了Android編程之短信竊聽器實現(xiàn)方法,以實例形式較為詳細的分析了Android編程實現(xiàn)竊聽器的具體步驟與實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Android開發(fā)筆記之:AsyncTask的應用詳解

    Android開發(fā)筆記之:AsyncTask的應用詳解

    本篇文章是對Android中AsyncTask的應用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • Android編程使用Fragment界面向下跳轉并一級級返回的實現(xiàn)方法

    Android編程使用Fragment界面向下跳轉并一級級返回的實現(xiàn)方法

    這篇文章主要介紹了Android編程使用Fragment界面向下跳轉并一級級返回的實現(xiàn)方法,較為詳細的分析了Fragment界面跳轉所涉及的相關知識點與實現(xiàn)技巧,并附帶了完整的實例代碼供讀者下載參考,需要的朋友可以參考下
    2015-10-10
  • Android字符串轉Ascii碼實例代碼

    Android字符串轉Ascii碼實例代碼

    這篇文章主要介紹了Android字符串轉Ascii碼的方法,大家參考使用
    2013-11-11
  • Android 適配器模式應用及設計原理

    Android 適配器模式應用及設計原理

    這篇文章主要介紹了Android 適配器模式應用及設計原理的相關資料,Android開發(fā)者應該都知道適配器會用,但是不是多清楚原理,這里幫大家分析下原理,需要的朋友可以參考下
    2016-10-10
  • Kotlin字符串操作在Android開發(fā)中的應用示例代碼

    Kotlin字符串操作在Android開發(fā)中的應用示例代碼

    本文介紹了Kotlin在Android開發(fā)中的字符串操作,包括多行字符串的創(chuàng)建、字符串插值、獲取字符串長度以及處理特殊字符等,通過示例代碼,展示了這些操作的實現(xiàn)方法,使開發(fā)者在處理字符串時更加高效便捷,感興趣的朋友一起看看吧
    2025-03-03

最新評論

德昌县| 常山县| 淅川县| 东乌珠穆沁旗| 赞皇县| 昌黎县| 营口市| 香格里拉县| 镇宁| 体育| 长子县| 宁津县| 新巴尔虎左旗| 阿克陶县| 甘谷县| 广昌县| 朝阳县| 贵阳市| 盐源县| 宜宾县| 阿拉善左旗| 平罗县| 汪清县| 延边| 洞口县| 习水县| 哈巴河县| 葫芦岛市| 民丰县| 土默特左旗| 丰城市| 黄冈市| 申扎县| 阿拉善盟| 万州区| 衡南县| 新干县| 辽中县| 巴塘县| 宁阳县| 萝北县|