Tuesday, 15 May 2012

c# - Export to excel from xlsm template -


आवश्यकता


मुझे एक विंडोज़ अनुप्रयोग बनाने की आवश्यकता है सी # जहां आउटपुट एक एक्सल फाइल (एक्सएलएसएम) है जो एक्सएलएसएम प्रारूप में एक टेम्पलेट से बना है (मैक्रोज़ में)।

टेम्पलेट फ़ाइल में, "इनटेमप्लेट। एक्सएमएसएम" एक छिपी हुई शीट है, "डेटा "। मुझे पत्रक को डेटा से भरना होगा (केवल कॉलम के लिए कोई हेडिंग नहीं) डाटाबेस से और फाइल को सहेजने से बचाने के लिए।


मैंने अभी तक क्या किया?


मेरे पास एक बटन है बटन क्लिक में मैंने यह लिखा था।

<पूर्व> OfficeOpenXml का उपयोग कर; नए वर्क्स स्ट्रिंग newFileName = string.Concat ("ExcelExport", '(', DateTime.Now.ToString ("डीडी-एमएम- yyyy h: mm: ss) के लिए (मूल एमएस = नया मेमोरीस्ट्रीम ()) {// डिफ़ॉल्ट फ़ाइलनाम का उपयोग करना टीटी ")। बदलें (':', '_')। को बदलें ('/', '-')। ('', '_'), ')', '.xlsm" को बदलें; FileInfo मौजूदाफ़ाइल = नया फ़ाइलइन्फो (पर्यावरण। वर्तमान निर्देशिका + @ "\ App_Data \ ineTemplate.xlsm"); अगर (मौजूदाफ़ाइल.एक्सिस्ट्स) {(मेरी मायक्सिल = नया एक्सेलपैकेज (मौजूदाफ़ाइल)) {ExcelWorksheet कार्यपत्रक = MyExcel.Workbook.Worksheets ["डेटा"]; Int यात्राकाउंट = 1; // मेरे पास एक चेकलिस्ट सूची बॉक्स में कुछ ट्रिप डेटा है, जिसे मुझे पहले कॉलम (कॉलम "ए") विदेशी मुद्रा (clbTrip.CheckedItems में ऑब्जेक्ट आइटम) भरने की आवश्यकता है (ड्रॉपडाउन ट्रिप = (ड्रॉपडाउन) आइटम; वर्कशीट। सील्स [ट्रिपकाउंट, 1]। वैल्यू = ट्रिप। वैल्यू; tripCount ++; } Int stopcount = 2; Int rowCount = 1; // मुझे हर कॉलम में प्रत्येक ट्रिप से स्टॉप के साथ शेष कॉलम भरना पड़ता है। ("सी" में ट्रिप 2 में, ट्रिप 1 से "सी" में ट्रिप 1, और "सी" में आगे की तरफ) उपरिच (वस्तु वस्तु आइटम सीएलबीटीप में। चेक इनइम्स) {ड्रॉपडाउन यात्रा = (ड्रॉपडाउन) आइटम; // डेटाबेस डाटासेट से एक ट्रिप में बंद हो जाओ dsStopNames = objTrip.GetStopNames (trip.Id); Foreach (dsStopNames.Tables में DataRow पंक्ति [0] .Rows) {worksheet.Cells [rowCount, stopcount] .Value = Convert.ToString (पंक्ति ["StopAliasName"]); ROWCOUNT ++; } स्टॉपकाउंट ++; पंक्तिकाउंट = 1; } {} एक सहेज फ़ाइल डायलॉग SaveFileDialog saveFileDialogExcel = नया SaveFileDialog बनाएँ () का प्रयास करें; SaveFileDialogExcel.Filter = "एक्सेल फाइलें (* .xlsm) | * .xlsm"; SaveFileDialogExcel.Title = "एक्सेल फाइल को निर्यात करें"; SaveFileDialogExcel.FileName = newFileName; अगर (saveFileDialogExcel.ShowDialog () == System.Windows.Forms.DialogResult.OK) {यदि (saveFileDialogExcel.FileName! = "") {String पथ = saveFileDialogExcel.FileName; MyExcel.SaveAs (एमएस); फ़ाइल। लिखेंअभीबाइट्स (पथ, एमएस.ToArray ()); }}} पकड़ (अपवाद) {MessageBox.Show ("सहेजा जा रहा समय अपवाद हुआ, जांचें कि फ़ाइल खुली है या नहीं"); एक्सेल पीढ़ी के लिए प्रयोग किया जाता है।

अन्य जानकारी


  1. Li> सिस्टम में माइक्रोसॉफ्ट ऑफिस स्थापित नहीं है

समस्या


एक फ़ाइल बनाई गई है लेकिन जब मैं खोलता हूं, इसका शो फ़ाइल उचित प्रारूप में नहीं है या दूषित या कुछ और है।


क्या यह हासिल करने का कोई दूसरा तरीका है? क्या ईपीप्लस ने एक्सएलएसएम फाइलों को संभालने में सक्षम किया है?

कृपया मदद करें।


No comments:

Post a Comment