我试图在下面的每张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");
}
}
但结果却确实在每张纸上都添加了一张图片。我有2张excel,但问题是当我点击第二张时,图像会拉伸一点点。 我明确地调整了它的大小,如果我没有为调整大小设置任何数字,那么拉伸比率是可测量的。
获得什么public void resize(double scaleX,double scaleY)
相对于当前大小调整图像大小。 请注意,此方法仅适用于具有默认字体大小的工作簿(Calibri 11pt for .xlsx)。如果更改了默认字体,则可以垂直或水平拉伸已调整大小的图像。
所以我的设置也是默认的,如上所述
答案 0 :(得分:0)
通过将列大小设置为其默认值解决了问题,我设置了调整大小功能不起作用的列大小,但是如果我们将电子表格创建为默认值以及列和行大小,那么就不会有任何问题