2013-03-04 4 views
7

के साथ फॉर्मूला सेल में एक्सेल रैप टेक्स्ट कैसे बनाएं समस्या यह है कि सेल सामग्री को लपेटा नहीं जाता है, जब उस सेल में एक सूत्र है जिसमें कुछ लंबी स्ट्रिंग वाले सेल का जिक्र होता है।क्लॉक्स्डएक्स

CodePlex पर मैं इस मुद्दे को और एक सरल कोड पर एक धागा पाया समस्या को देखने के लिए:

var generated = new XLWorkbook(); 
var workSheet = generated.AddWorksheet("Test"); 
workSheet.Cell("B1").Style.Alignment.WrapText = true; 
workSheet.Cell("B1").Value = "hello hello hello hello hello"; 
workSheet.Cell("A3").FormulaA1 = "B1"; 
workSheet.Cell("A3").Style.Alignment.WrapText = true; 
generated.SaveAs("Generated.xlsx"); 

मैं भी पंक्ति की ऊँचाई सेट करने की कोशिश की मैन्युअल के बजाय सेल लपेटकर:

workSheet.Row(3).Height = workSheet.Row(1).Height; 

हालांकि या तो कोई सफलता नहीं है।

क्या मैं इसके बारे में कुछ भी कर सकता हूं?


पीटर अल्बर्ट द्वारा टिप्पणी के बाद, मैं करने की कोशिश की सेट पंक्ति के AutoFit। ClosedXML में ऐसा करने के लिए मुझे एकमात्र चीज़ मिल गई है workSheet.Row(3).AdjustToContent(); है। लेकिन यह या तो काम नहीं करता था (न ही कुछ कॉलम की सामग्री को समायोजित करना)।

+1

'वर्कशीट.सेल ("ए 3") आज़माएं। WrapText = True' के बाद' वर्कशीट। पंक्ति (3) .ntireRow.AutoFit' –

+0

@ पीटर एल्बर्ट मुझे लगता है कि यह एक उत्तर देने योग्य है! –

+0

@ पीटरर। नहीं – horgh

उत्तर

0

क्षमा करें, मैं अभी भी टिप्पणी लिख नहीं सकता ... ऑटोफिट ClosedXML की संपत्ति नहीं है। मेरे संस्करण में समायोजित करने के लिए (26/07/2014, मुझे लगता है कि 0.72.3) वर्डवाप प्रॉपर्टी को अनदेखा करता है (जो लंबी लाइनों को विभाजित करता है)। यह मुख्य जांच

  if (c.HasRichText || textRotation != 0 || c.InnerText.Contains(Environment.NewLine)) 
      { 
       // omissis... 
      } 
      else 
       thisHeight = c.Style.Font.GetHeight(fontCache); 

इस कार्यान्वयन पर ध्यान नहीं देता सटीक ऊंचाई के मामले में एक सेल autowrap की वजह से एक से अधिक पंक्ति है। तो, एडजस्ट ट्यूटेंट्स + ऑटोवाप काम नहीं करता है। यदि आपको AdjustToContents को कॉल करने से बचने के लिए आवश्यक सामग्री के आकार की ऊंचाई की आवश्यकता है। यह व्यवहार XL IsAutoHeight संपत्ति के साथ संगत नहीं है।

5

मैं इस

xlWorkSheet.Range["A4:A4"].Cells.WrapText = true; 
+0

'ClosedXML' में इस प्रकार का 'रेंज' इंडेक्सर नहीं है। क्या आपने शायद 'ईपीप्लस' कोड पोस्ट किया था? –

5

का उपयोग करने के बजाय सामग्री के लिए समायोजित करें लागू करने की, तो आप इस

var generated = new XLWorkbook(); 
var workSheet = generated.AddWorksheet("Test"); 
worksheet.Cell(3, 2).Value = "Hello Hello Hello Hello Hello Hello Name";  
worksheet.Cell(3, 2).Style.Alignment.WrapText = true; 

तरह Wraptext आवेदन कर सकते हैं और दोनों AdjustToContents के बाद इसका इस्तेमाल करता है, तो आप लागू करना चाहते।

var generated = new XLWorkbook(); 
var workSheet = generated.AddWorksheet("Test"); 
worksheet.Columns(2, 20).AdjustToContents();  
worksheet.Cell(3, 2).Value = "Hello Hello Hello Hello Hello Hello Name"; 
worksheet.Cell(3, 2).Style.Alignment.WrapText = true; 
0

भी ध्यान रखें कि है कि बहुत ही Codeplex पृष्ठ पर, पुस्तकालय राज्यों के लेखक:

यह एक यह पता लगाने की कुछ समय लिया।

एक्सेल वास्तव में धोखा दे रहा है जब आप एक सेल पर रैप टेक्स्ट सेट करते हैं जो दूसरे को इंगित करता है। यह आवश्यक ऊंचाई की गणना करता है और फिर पंक्ति ऊंचाई संपत्ति सेट करता है। यह ऐसा कुछ है जो मैं यहां नहीं कर सकता।

आपको बिना करना होगा।

मेरे लिए यह दर्शाता है कि यह सुविधा संभव नहीं है।

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

  • कोई संबंधित समस्या नहीं^_^