[英]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.