2012-12-11 5 views
11

में Microsoft.Office.Interop.Excel का उपयोग कर एक्सेल कॉलम में संख्या, टेक्स्ट और दिनांक जैसे डेटा प्रकार सेट करें। मेरी समस्या यह है कि मैं डेटा प्रकार को सी # में एक्सेल कॉलम पर सेट करने का प्रयास कर रहा हूं, इस मामले में डेटा प्रकार संख्या , पाठ और तारीख। मैं डीएलएल माइक्रोसॉफ्ट.ऑफिस.इंटरोप.एक्ससेल का उपयोग कर रहा हूं। मुझे नहीं पता कि सी # प्रोग्रामिंग भाषा का उपयोग कर उन प्रारूपों को एक संपूर्ण एक्सेल कॉलम की कोशिकाओं में कैसे सेट करें।सी #

उत्तर

20

पाठ को एक सीमा निर्धारित करने के लिए:

xlYourRange.NumberFormat = "@"; 

यह पाठ के रूप में यह फ़ॉर्मेट करने के लिए के लिए तुम भी आप एपोस्ट्रोफ़ी के साथ एक सेल में डाल एक मूल्य के उपसर्ग कर सकते हैं:

xlYourRange.Value = "'"; 

सेट करने के लिए एक संख्या

xlYourRange.NumberFormat = "0"; 

स्पष्ट रूप से यदि आप पूरे कॉलम के लिए प्रारूप सेट करना चाहते हैं तो आपकी सीमा सह होगी lumn।

xlYourRange = xlWorksheet.get_Range("A1").EntireColumn; 

संपादित करें:

तिथियां में थोड़ा और अधिक जटिल हैं और यह भी अपनी क्षेत्रीय सेटिंग पर निर्भर करेगा:

// Results in a Date field of "23/5/2011" 

xlRange.NumberFormat = "DD/MM/YYYY"; 
xlRange.Value = "23/5/2011"; 

// Results in a Custom field of "23/5/2011" 

xlRange.NumberFormat = "DD-MM-YYYY"; 
xlRange.Value = "23/5/2011"; 

// Results in a Custom field of "05/23/2011" 

xlRange.NumberFormat = "MM/DD/YYYY"; 
xlRange.Value = "5/23/2011"; 

// Results in a Custom field of "05-23-2011" 

xlRange.NumberFormat = "MM-DD-YYYY"; 
xlRange.Value = "5/23/2011"; 

// Results in a Date field of "23/05/2011" 

xlRange.NumberFormat = "DD/MM/YYYY"; 
xlRange.Value = "5/23/2011"; 

// Results in a Custom field of "23-05-2011" 

xlRange.NumberFormat = "DD-MM-YYYY"; 
xlRange.Value = "5/23/2011"; 

// Results in a Custom field of "23/5/2011" 

xlRange.NumberFormat = "MM/DD/YYYY"; 
xlRange.Value = "23/5/2011"; 

// Results in a Custom field of "23/5/2011" 

xlRange.NumberFormat = "MM-DD-YYYY"; 
xlRange.Value = "23/5/2011"; 
+0

सेट श्रेणी के दिनांक xlYourRange.NumberFormat = "DD/MM/YYYY" के मामले में; यह सीमा को कस्टम प्रकार पर सेट करता है I xlYourRange.NumberFormat = "DD-MM-YYYY" का प्रयास करें; और फिर इसे दिनांक प्रकार – Jack1987

+0

@ जैक 1 9 87 पर सेट करें जैसा कि पहली बार विचारों की तुलना में तारीखें और भी जटिल हैं। मैंने अधिक संयोजनों को शामिल करने के लिए अपने उत्तर में संशोधन किया है लेकिन ऐसा लगता है कि यह ज्यादातर परीक्षण और त्रुटि का मामला है। अनुप्रयोगों में मैंने कोड किया है जो मैं आमतौर पर करता हूं, तारीख को स्ट्रिंग के रूप में सेट करता है और इसे "23, सितंबर 2011" जैसा प्रारूपित करता है ताकि यह एक स्ट्रिंग के रूप में रहता है। इस तरह से मैं हमेशा प्रारूप की गारंटी दे सकता हूं इससे कोई फर्क नहीं पड़ता कि उपयोगकर्ता की क्षेत्रीय सेटिंग्स क्या हैं। –

+0

यदि आप दिनांक स्वरूपों में स्थानीयकरण की समस्याओं के बारे में सोच रहे हैं (उदाहरण के लिए, रूसी स्थानीयकरण में आपका दिनांक प्रारूप "ДД.MM.ГГГГ" हो सकता है), मेरा उत्तर यहां देखें: http://stackoverflow.com/a/35418176/ 2199512 – Jordan

0

एक सवाल मैं इस में कुछ समय पर पूछे गए एक जवाब नहीं है वापस।

सबसे विशेष रूप से, डेटा प्रकार इस आदमी ने अपने जवाब में उपयोग करता हैं:

private struct ExcelDataTypes 
{ 
    public const string NUMBER = "NUMBER"; 
    public const string DATETIME = "DATETIME"; 
    public const string TEXT = "TEXT"; // also works with "STRING". 
} 

देखो परिचित हैं? यहां तक ​​कि सिड हॉलैंड तुलना में अधिक जटिल उल्लेख किया है -

Insert DataTable into Excel Using Microsoft Access Database Engine via OleDb

0

हाँ, दिनांक स्वरूप सब कुछ के साथ और अधिक जटिल है:

आप रुचि रखते हैं, यहाँ की कड़ी है। कारण कुछ स्थानीयकरण समस्याओं में है। उदाहरण के लिए, यदि आपके विंडोज सिस्टम में रूसी स्थानीयकरण है, तो आपको "ДД.MM.ГГГГ" या "ГГГГ-MM-ДД" जैसे दिनांक स्वरूपों में रूसी अक्षरों का उपयोग करना चाहिए, और इसलिए, आप निकालने और लागू करने में सक्षम होना चाहिए ये पत्र यहां कम या कम पूर्ण विवरण और समाधान देखें: https://stackoverflow.com/a/35418176/2199512