POI バージョン 3.2 の使用
問題: 画像のサイズを元の高さと幅に変更できません。Excelファイルに画像を追加できます。
画像を追加した後、picture.resize(); を呼び出します。方法。
後で、sheet.setColumnWidth(columnindex, columnwidth) を呼び出して Excel ファイルの列のサイズを変更すると、画像は元の高さ/幅を失います。
助けてください。
POI バージョン 3.2 の使用
問題: 画像のサイズを元の高さと幅に変更できません。Excelファイルに画像を追加できます。
画像を追加した後、picture.resize(); を呼び出します。方法。
後で、sheet.setColumnWidth(columnindex, columnwidth) を呼び出して Excel ファイルの列のサイズを変更すると、画像は元の高さ/幅を失います。
助けてください。
写真が固定されている列を呼び出していない場合でも、picture.resize()
後まで呼び出してはいけません。sheet.autoSizeColumn(i)
autoSizeColumn(i)
カスタム フォントを使用した HSSFWorkbook で、ロゴを適切なサイズで表示するために次のことを行いました。
CreationHelper helper = wb.getCreationHelper();
Drawing drawing = sheet.createDrawingPatriarch();
ClientAnchor anchor = helper.createClientAnchor();
anchor.setDx1(LOGO_MARGIN * XSSFShape.EMU_PER_PIXEL);
anchor.setDx2(LOGO_WIDTH_IN_FUNNY_POI_FORMAT * XSSFShape.EMU_PER_PIXEL);
anchor.setDy1(LOGO_MARGIN * XSSFShape.EMU_PER_PIXEL);
anchor.setDy2(LOGO_HEIGHT_IN_FUNNY_POI_FORMAT * XSSFShape.EMU_PER_PIXEL);
drawing.createPicture(anchor, pictureIndex);
LOGO_HEIGHT ... と LOGO_WIDTH .. を画像の必要なピクセルサイズに設定した場所。
結果の画像は元の比率ではなく、予想されるピクセル サイズでもありませんでした。そこで、予想されるサイズと現在のサイズの比率を使用し、それに応じて LOGO_WIDTH.. と LOGO_HEIGHT.. を調整しました。美しくはありませんが、機能します:/
Picture.resize()
そして、その後電話しないでください。
Apache POIU Bug 52504を参照するか、このニュースグループの poi に関するディスカッションPicture.resize()
と、画像を挿入するための POI クイック ガイドを参照してください。
更新: 現在のコードは次のようになります。元の画像は 2000x450 です。
LOGO_MARGIN = 2;
int index = getLogoPictureIndex();
CreationHelper helper = this.wb.getCreationHelper();
Drawing drawing = this.sheet.createDrawingPatriarch();
ClientAnchor anchor = helper.createClientAnchor();
anchor.setDx1(LOGO_MARGIN * XSSFShape.EMU_PER_PIXEL);
anchor.setDy1(LOGO_MARGIN * XSSFShape.EMU_PER_PIXEL);
Picture pic = drawing.createPicture(anchor, index);
pic.resize(0.064);
setcolumnwidth()が完了した後、画像オブジェクトを保持して、最後にresize()を呼び出すべきではありませんか?