2011-06-02 11 views
5

मैं इस तरह कुछ कोड के माध्यम से कार्यपत्रक के लिए एक छवि को जोड़ने हूँ:POI एक्सेल HSSFPicture छवि और आकार

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

//add a picture shape 
//ClientAnchor anchor = this.creationHelper.createClientAnchor(); 
ClientAnchor anchor = new HSSFClientAnchor((short)0, (short)0, (short)0, (short)0, (short)0, (short)0, (short)2, (short)5) 

// 0 = Move and size with Cells, 2 = Move but don't size with cells, 3 = Don't move or size with cells. 
anchor.setAnchorType(2) 

HSSFPicture pict = drawing.createPicture(anchor, this.images.get("logo")); 
pict.resize() ; 

हालांकि बस के बाद छवियों जोड़ रहे हैं, मैं कॉलम का आकार परिवर्तन - जो गंदगी बातें करने लगता है। यह छवियों का आकार बदलता है - जो मैं नहीं चाहता हूं।

//psuedo code 
public void autoSizeColumns() { 
    def cols = (StartColumn..this.cMax) 
    cols.each { i -> 
     sheet.autoSizeColumn i 
    } 
} 

BrandedWorksheet v; 
v.autoSizeColumns() 

यदि मैं autoSizeColumns() नहीं करता हूं तो छवि उचित आकार है।

क्या दोनों के पास कोई तरीका है?

+0

क्या आप शायद पहले कॉलम का आकार नहीं ले सकते हैं, फिर इच्छित आकार में छवि जोड़ें? – Gagravarr

+0

छवि जोड़ने के क्रम को उलट देता है और ऑटोरेसाइज़ का कोई प्रभाव नहीं पड़ता है ... – akaphenom

उत्तर

5

यह पागल है और अधिक समझ में नहीं आता है, लेकिन रिक्ति और पंक्तियों की उचित मात्रा आवंटित करना महत्वपूर्ण लगता है। मैंने पर्याप्त पंक्तियों को जोड़ा ताकि छवि को पंक्तियों में आंतरिक रूप से बाध्य किया जा सके - और सब अच्छा लगता है।

कहानी का नैतिक: काम करना और गड़बड़ करना और अंततः यह काम कर सकता है। आप वास्तव में निराश हो जाएंगे, और वहाँ मदद की एक टन नहीं होगी - क्योंकि हम में से जो छवियों का सही आकार ले चुके हैं, वे वास्तव में क्यों नहीं समझते हैं।

+0

यह सही है। यदि आप छवि आकार के नीचे कॉलम आकार देते हैं, तो छवि फैली हुई है। यदि आपके पास पर्याप्त जगह है, तो यह सही है और छवि फैली नहीं है। मैं अपने कॉलम चौड़ाई की गणना के लिए 40 का कारक मान रहा हूं। – guerda

संबंधित मुद्दे