当前位置: 首页 > 知识库问答 >
问题:

不带锚点的Apache POI插入映像

卫胜
2023-03-14

我使用Apache POI在Java中创建Excel文件,它可以工作,但插入的图像锚定到列/行。这种方法有2个问题:

//create a new workbook
Workbook wb = new XSSFWorkbook(); //or new HSSFWorkbook();

//add picture data to this workbook.
InputStream is = new FileInputStream("image1.jpeg");
byte[] bytes = IOUtils.toByteArray(is);
int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);
is.close();

CreationHelper helper = wb.getCreationHelper();

//create sheet
Sheet sheet = wb.createSheet();

// Create the drawing patriarch.  This is the top level container for all shapes. 
Drawing drawing = sheet.createDrawingPatriarch();

//add a picture shape
ClientAnchor anchor = helper.createClientAnchor();
//set top-left corner of the picture,
//subsequent call of Picture#resize() will operate relative to it
anchor.setCol1(3);
anchor.setRow1(2);
Picture pict = drawing.createPicture(anchor, pictureIdx);

//auto-size picture relative to its top-left corner
pict.resize();

//save workbook
String file = "picture.xls";
if(wb instanceof XSSFWorkbook) file += "x";
FileOutputStream fileOut = new FileOutputStream(file);
wb.write(fileOut);
fileOut.close();

谢谢你的回答。

共有1个答案

庄新翰
2023-03-14

可以肯定的是,由于方法“resize”中的这个注释,Javadoc:

请注意,此方法仅适用于默认字体大小的工作簿(Arial 10pt用于.xls,Calibri11pt用于.xlsx)。如果更改了默认字体,则调整大小的图像可以垂直或水平地排列。

 类似资料:
  •     之前提到过,视图的center属性和图层的position属性都指定了anchorPoint相对于父图层的位置。图层的anchorPoint通过position来控制它的frame的位置,你可以认为anchorPoint是用来移动图层的把柄。     默认来说,anchorPoint位于图层的中点,所以图层的将会以这个点为中心放置。anchorPoint属性并没有被UIView接口暴露出来

  • 我可以在不重新键入的情况下重用YAML中的键吗?如果可以通过锚点重复该键,则重命名该键将非常简单。

  • 我试图点击一个下载链接在铬通过硒。它在页面中有许多其他链接,这些链接正在工作,但仅此下载链接就会导致超时异常。 页面中的锚定标记如下所示 如有任何建议,将不胜感激。

  • 我在制作excel表中插入图片时遇到了麻烦。关于这个问题有很多问题,但我就是想不出我做错了什么。我的代码运行,没有显示错误,但没有看到插入的图像:( 代码如下:

  • 我想在我的sql-server数据库中插入。txt文件数据。我在.txt文件中使用和不使用PK-Variable时都出现了错误。我的疑问: 使用 从“C:\user\test.txt”大容量插入db.schema.table(FIELDTERMINATOR=';')去吧 null null

  • 问题内容: 这是我的代码: 到目前为止,该方法适用于我尝试过的每个网址,但某些包含锚的网址除外。这些锚定URL中的一些返回400。奇怪的是,并不是所有包含锚定的链接,其中许多都可以正常工作。 不幸的是,我必须非常通用,因为我无法在此处提供特定的网址。 链接是完全有效的,并且在任何浏览器中都可以正常工作,但是HttpClient尝试链接时会返回400。如果我卸下锚,它将起作用。 有什么想法要寻找吗?