EPPlus में ऑटो कॉलम की चौड़ाई


139

जब कॉलम लंबे होते हैं तो कॉलम को ऑटो चौड़ाई कैसे बनाया जाता है?

मैं इस कोड का उपयोग करता हूं

 Worksheet.Column(colIndex).AutoFitColumn() 'on all columns'
 Worksheet.cells.AutoFitColumns()
 Worksheet.Column(colIndex).BestFit = True  'on all columns'

इनमें से कोई भी तरीका काम नहीं कर रहा है

क्या इसे काम करने का कोई तरीका है?

नोट: मेरे कुछ ग्रंथों में यूनिकोड का उपयोग किया गया है।


2
Worksheet.cells.AutoFitColumns (); काम करेगा, लेकिन इसे आपके डेटा स्वरूपित और मुद्रित करने के ठीक बाद जोड़ा जाना चाहिए।
सुरेश कमरुशी

जवाबों:


250

उपयोग करें AutoFitColumns, लेकिन आपको कोशिकाओं को निर्दिष्ट करना होगा, मैं संपूर्ण कार्यपत्रक को मानता हूं:

VB.NET

Worksheet.Cells(Worksheet.Dimension.Address).AutoFitColumns()

सी#

Worksheet.Cells[Worksheet.Dimension.Address].AutoFitColumns();

कृपया ध्यान दें कि आपको वर्कशीट भरने के बाद इस विधि को कॉल करना होगा।


9
महत्वपूर्ण बात यह है कि आपको वर्कशीट भरने के बाद इस विधि को कॉल करना होगा क्योंकि कार्यपत्रक में कोई डेटा नहीं होने पर Worksheet.Dimension प्रॉपर्टी शून्य हो जाएगी।
लांडेयो

@Landeeyo धन्यवाद यह मेरे लिए मदद करता है। यह महत्वपूर्ण है कि सामग्री भरने के बाद चौड़ाई सेट करना।
लंका

3
AutoFitColumns मेथड मेरे लिए तब काम नहीं कर रहा था जब मैं कोई पैरामीटर प्रदान नहीं कर रहा था, जब मैं इसमें न्यूनतम और अधिकतम चौड़ाई जोड़ता हूं, तो यह पूरी तरह से काम करता है।
जीशान अजमल

4
यह बिल्कुल सही उत्तर है - पैंगान को इसे इस तरह चिह्नित करना चाहिए।
GDB

यदि आपके पास गणना की गई कोशिकाएं हैं, तो आपको Worksheet.Calculate()पहले कॉल करना होगा ताकि उन कोशिकाओं के लिए मूल्य निर्धारित किया जा सके।
मिकह

38

मैंने EPPlus के 3.1.3.0 संस्करण के साथ इस कोड का उपयोग किया है और यह काम कर रहा है:

worksheet.Column(1).AutoFit();

जहाँ एक वर्कशीट एक वर्कशीट है, जो मैंने अपने कोड में बनाई गई वर्कशीट को संदर्भित करता है (न कि स्टैटिक विधि वाला वर्ग!)।

कॉलम भरने के बाद स्पष्ट रूप से आपको इस विधि को कॉल करना होगा


पूरे दिन त्रुटि हो रही है। "" System.Drawing इस प्लेटफ़ॉर्म पर समर्थित नहीं है। "
कुरसत तुर्क

15

मुझे पता है कि यह एक पुराना प्रश्न है, लेकिन मैं नीचे दिए गए कोड का उपयोग करता हूं और यह सीधे पता लगता है कि आपने क्या करने की कोशिश की है।

using (var xls = new ExcelPackage())
{
    var ws = xls.Workbook.Worksheets.Add("Some Name");

    //**Add Column Names to worksheet!**
    //**Add data to worksheet!**

    const double minWidth = 0.00;
    const double maxWidth = 50.00;

    ws.Cells.AutoFitColumns(minWidth, maxWidth);

    return pkg.GetAsByteArray();
}

11

बस यह इंगित करना चाहते थे कि आप रेंज निर्दिष्ट करने के साथ कोशिकाओं को फिट कर सकते हैं, बस सभी कॉलम आदि को फॉर्मेट करने के बाद आप इसे कॉल करना सुनिश्चित करें:

worksheet.Cells.AutoFitColumns()

1
इसने मेरे लिए काम किया। डेटा जोड़ने के बाद उसे कॉल करना न भूलें। जब मैंने डेटा को जोड़ने से पहले इसे कॉल किया तो कुछ नहीं हुआ।
मोर्टब

10

मुझे पता है कि थोड़ी देर हो चुकी है लेकिन मुझे आज भी यही समस्या है। यदि आपके पास एक worksheet.DefaultColWidthपरिभाषित है, तो यह काम नहीं करेगा। मैंने वह लाइन हटा दी है और जोड़ दी है Worksheet.cells.AutoFitColumns();और यह अब काम करता है।


5
sheet.Cells.AutoFitColumns()सरल है, टिप के लिए धन्यवाद! ClosedXml में, आप करते हैंsheet.Columns().AdjustToContents()
nawfal

6

यह मेरे लिए ठीक काम कर रहा है।

प्रयत्न:

ExcelWorksheet wsSheet1 = ExcelPkg.Workbook.Worksheets.Add("Sheet1");
wsSheet1.Cells[wsSheet1.Dimension.Address].AutoFitColumns();
ExcelPkg.SaveAs();

3

worksheet.Column(1).AutoFit(0);AutoFit का उपयोग करना था () चाल नहीं कर रहा था।


3

आपको चौड़ाई की गणना करने की आवश्यकता होगी। लाइब्रेरी में कोई ऑटोसाइजिंग फ़ंक्शन नहीं है जो आपके इरादा के अनुसार काम करेगा।

ऑटोफिटीकल्म सूत्र के साथ लिपटे पाठ और कोशिकाओं के साथ काम नहीं करेगा।

को देखो http://epplus.codeplex.com/discussions/218294?ProjectName=epplus आप कैसे इस समस्या का समाधान कर सकते के उदाहरण के लिए।


epplus.codeplex.com/discussions/218294?ProjectName=epplus मैं इस समस्या के लिए कोई समाधान नहीं ढूँढ सकता।
पेंगान

3

.NET कोर के उत्तराधिकारी के रूप में .NET कोर, EPPplus लाइब्रेरी के साथ फ़ंक्शन ऑटोफिट कोशिकाओं का समर्थन नहीं करता है।

worksheet.Cells.AutoFitColumns();

या

worksheet.Column(1).AutoFit();

अपवाद का कारण बनता है:

"System.Drawing is not supported on this platform."

System.Drawing असेंबली GDI और Windows विशिष्ट पुस्तकालयों पर निर्भर है जिन्हें किसी अन्य समाधान द्वारा प्रतिस्थापित किया जाना है। इस मुद्दे का हल मेरे लिए अज्ञात है।


1

मैं इसका इस्तेमाल करता हूं और अच्छा काम कर रहा हूं।

Dim objExcel As New ExcelPackage
Dim Sheet As ExcelWorksheet = objExcel.Workbook.Worksheets.Add("SheetName")
Sheet.Cells("B1:BN").AutoFitColumns()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.