2016-10-10 8 views
7

का उपयोग कर स्तंभ लगता है मैं एक्सेल शीट डायनामिक रूप से तैयार है, मैं तिथि के रूप में कुछ स्तंभ स्वरूपित करने के लिए हालांकि मैं पहले से इन स्तंभों के सूचकांक पता नहीं है मैं केवल शीर्ष लेख शीर्षक पता करना चाहते हैं।Epplus स्तंभ नाम

1- मैं अब मैं कैसे नाम "जन्मतिथि" के साथ उदाहरण के स्तंभ के लिए स्वरूपित कर सकते हैं कम की तारीख क्षेत्र होने के लिए से DataTable

var templateXls = new ExcelPackage(); 
     var sheet = templateXls.Workbook.Worksheets.Add(parameters.ReportName); 

     sheet.Cells["A1"].LoadFromDataTable(myDataTable, true); 

एक्सेल लोड? स्तंभ हो सकता है किसी भी सूचकांक उपयोगकर्ता चयन पर निर्भर करता है भी संभावना है कि स्तंभ जेनरेट नहीं किया जाता है। (उपयोगकर्ता इसे शामिल करता है, तो यह नहीं है)

उत्तर

4

एक छोटे से linq रूप में अच्छी तरह से यह कर सकते हैं के बजाय शुरू करते हैं। तो अपने कोड स्निपेट के आधार पर (कुछ अशक्त-संदर्भ चेकों को जोड़ने के लिए चाहते हो सकता है):

var idx = sheet 
    .Cells["1:1"] 
    .First(c => c.Value.ToString() == "Birthdate") 
    .Start 
    .Column; 

sheet.Column(idx).Style.Numberformat.Format = "mm-dd-yy"; 
5

आप इस तरह से पहली पंक्ति में कोशिकाओं के मूल्यों निकाल सकते हैं:

 using (ExcelPackage package = new ExcelPackage(new FileInfo(filePath))) 
     { 
      foreach (ExcelWorksheet worksheet in package.Workbook.Worksheets) 
      { 
       List<string> ColumnNames = new List<string>(); 
       for(int i = 1; i <= worksheet.Dimension.End.Column; i++) 
       { 
        ColumnNames.Add(worksheet.Cells[1, i].Value.ToString()); // 1 = First Row, i = Column Number 
       } 
      } 
     } 

तो फिर तुम आगे बढ़ सकते हैं अपने हितों के अनुसार उनकी तुलना करने के।

बस ध्यान में रखना है कि सूचियों और सरणियों के साथ विपरीत, पंक्तियों और स्तंभों की अनुक्रमणिका "1" में "0"

7

आप भी इस तरह विस्तार विधि का उपयोग कर सकते हैं:

public static class EpPlusExtensionMethods 
{ 
    public static int GetColumnByName(this ExcelWorksheet ws, string columnName) 
    { 
     if (ws == null) throw new ArgumentNullException(nameof(ws)); 
     return ws.Cells["1:1"].First(c => c.Value.ToString() == columnName).Start.Column; 
    } 
} 

और यह प्रयोग करें:

int columnId = ws.GetColumnByName("Birthdate"); 
+0

आप सुनिश्चित हैं [ "1: 1"] स्तंभ संख्या के लिए जाँच करेगा? मुझे लगता है कि आप 1 के अलावा अन्य कुछ और पास करना चाहते हैं: 1। 1: यदि सही है तो आप समझा सकता है 1 क्या है? धन्यवाद –

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