簡體   English   中英

XSSFWorkbook中圖像的大小因工作表而異

[英]The size of an image is different from sheet to sheet in XSSFWorkbook

我正在嘗試在每張Excel表格中插入徽標,以下是代碼段:

int numberOfSheets = wb.getNumberOfSheets();
for(int i=0;i<numberOfSheets;i++)
{
    XSSFSheet sheet = wb.getSheetAt(i);

    try {
        //insert a logoS
        String location = "/src/main/resources/logo/logo.jpg";
        InputStream is = new FileInputStream(location);
        byte[] bytes = IOUtils.toByteArray(is);
        int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);
        is.close();

        CreationHelper creationHelper = wb.getCreationHelper();
        Drawing drawing = sheet.createDrawingPatriarch();

        ClientAnchor anchor = creationHelper.createClientAnchor();
        anchor.setCol1(0);
        anchor.setRow1(0);
        Picture pict = drawing.createPicture(anchor, pictureIdx);
        pict.resize(3.0,3.0);
    } catch (FileNotFoundException e) {
        log.info("Problem in reading logo.jpg");
    } catch (IOException io) {
        log.info("Problem in reading logo.jpg");
    }
}

但是結果是它確實在每張紙上都添加了圖像。 我在Excel中有2張紙,但是問題是當我單擊第二張紙時,圖像有點拉伸了。 我已經明確調整了它的大小,如果我不輸入任何數字來調整大小,則拉伸比率是可以測量的。

我可以從XSSFPicture文檔中獲得什么

public void resize(double scaleX,double scaleY)

相對於當前尺寸調整圖像尺寸。 請注意,此方法僅適用於具有默認字體大小的工作簿(.libsx為Calibri 11pt)。 如果更改了默認字體,則可以垂直或水平拉伸調整大小的圖像。

所以我的設置也是默認的,如上所述

通過將列大小設置為其默認值可以解決此問題,我已經設置了無法調整大小功能的列大小,但是如果我們將電子表格以及列和行大小創建為其默認值,那么就不會有任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM