2016-06-14 21 views
2

ColdFusion 10でSpreadSheetAddImageを使用して、ヘッダーに画像を追加するのはスプレッドシートです。私が実行している問題は、関数がアンカーの位置を取る場合です。たとえば、セル1の行1からセル5の行5にイメージを実行する場合は、アンカー引数として「1,1,5,5」を指定します。しかし、私のテーブルにそれらの細胞の小さなデータがある場合、画像は傷つきます。幅と高さを設定してイメージを追加するにはどうすればよいですか?SpreadSheetAddImage - 幅と高さが設定された画像を追加する

SpreadsheetAddImage(excelSheet,"C:\myimagepath\excelReportHeaderImage.jpg","1,1,5,5"); 
+0

AFAIK、CFは明示的なサイジングをサポートしていません。幅と高さを変更する唯一の方法は、固定された行と列の幅と高さを変更することです。それはPOIで行うことができますが、Excelの測定システムは少し畳み込まれているので、[明示的なサイジングはあなたが思うほど簡単ではありません](http://stackoverflow.com/questions/759856/poi-3-2-image-高さ - 幅 - 制御)。オーバーフローが気にならない場合は、画像をセルの左上隅に固定し、必要に応じてサイズを変更してみてください。他の方法よりも少しシンプルですが、正確ではなくPOIが必要です。 – Leigh

+0

も参照してください[Apache HSSFとXSSFのPOI画像セル](http://stackoverflow.com/questions/759856/poi-3-2-image-height-width-controlling) – Leigh

+0

@Leigh - オーバーフローが問題ありませんしかし、どのように左上のセル(A1)にちょうどアンカーして、それが必要なように画像を横切らせるのですか? – Phil

答えて

1

リーの助けを借りて、それを説明しました。 ColdFusionの10では、ここで

// Add our report header (must add AFTER the columns have been resized or it will reset the image size) 
headerImageBytes = FileReadBinary(image_file_path); 
headerImageIndex = poiWorkbook.addPicture(headerImageBytes, poiWorkbook.PICTURE_TYPE_JPEG); 
helper = poiWorkbook.getCreationHelper(); 
drawing = poiSheet.createDrawingPatriarch(); 
anchor = helper.createClientAnchor(); 
anchor.setCol1(0); 
anchor.setCol2(5); 
anchor.setRow1(0); 
anchor.setRow2(5); 
picture = drawing.createPicture(anchor, headerImageIndex); 
picture.resize(); 

が...私がやったことで今、イメージはセルA1に示し:E5、それは画像のTRUEサイズです。 サイズを調整する必要がある場合は、resizeメソッドにスケールを渡すことができます。

+0

素敵な仕事!今、なぜCFがそれを箱から出さないのですか?-)? – Leigh

+0

@Leigh - 私は分かりません。私はアドビの方々が本当にこれらを少し上手くいくと思ってくれることを願っています。 – Phil

+0

はい。第三者の図書館を統合するという課題と、いくつかの基本的な機能が利用できないか、またはあなたの期待通りに機能しないという激怒の間に、私は同情を浮かべています。怒りは通常勝ちます;-) – Leigh

関連する問題