1
私はapache poi 3.15を使用して画像をExcelに挿入していますが、作業ファイルには境界線を追加したいのですが、を右クリック - >形式画像 - >塗りつぶし&ライン - >ライン - > MSオフィスの実線は、SOとApacheのドキュメントで多くを検索しましたが、poiを使用してこれを実現する方法がありません。私のコードJavaでapache poiを使って塗りつぶしと線でフォーマットする画像
private void drawImageOnExcelSheetForGLOS(XSSFSheet sitePhotosSheet,
int row1, int row2, int col1, int col2, String fileName) {
try {
InputStream is = new FileInputStream(fileName);
byte[] bytes = IOUtils.toByteArray(is);
int pictureIdx = sitePhotosSheet.getWorkbook().addPicture(bytes,Workbook.PICTURE_TYPE_JPEG);
is.close();
CreationHelper helper = sitePhotosSheet.getWorkbook().getCreationHelper();
// Create the drawing patriarch. This is the top level container for
// all shapes.
Drawing drawing = sitePhotosSheet.createDrawingPatriarch();
// add a picture shape
ClientAnchor anchor = helper.createClientAnchor();
anchor.setAnchorType(ClientAnchor.MOVE_AND_RESIZE);
// set top-left corner of the picture,
// subsequent call of Picture#resize() will operate relative to it
anchor.setCol1(col1);
anchor.setCol2(col2);
anchor.setRow1(row1);
anchor.setRow2(row2);
drawing.createPicture(anchor, pictureIdx);
} catch(Exception e) {
}
}
以下の私はXSSFSimpleShapeを使用した画像の周りに線を描画することができていますが、それは私がまさに望んでいたともsetBorderXXX(としようとしたものではありません)が、これらの境界線や行がMSを使用して設定するときのように画像を移動しませんオフィス。私が取得し、第二、私は次のようにこれはXSSFPictureのsetLineXXX()メソッドを使用することによって達成することができ
'drawing.createPicture(アンカー、pictureIdx) ; 'はvoidメソッドではありません。 [XSSFPicture](https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFPicture.html)を返します。これは[XSSFShape](https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFShape.html)を拡張し、いくつかの 'setLine ...'メソッドを継承します。あなたはそれらの方法を使って試しましたか? –