2009-01-13 10 views
7

मैं एक पुस्तकालय की तलाश में हूं जो मुझे कुछ कोशिकाओं में डेटा जोड़ने के लिए एक्सेल फ़ाइलों को प्रोग्रामेटिक रूप से संशोधित करने की अनुमति देगा। मेरा वर्तमान विचार यह निर्धारित करने के लिए नामित श्रेणियों का उपयोग करना है कि नया डेटा कहां डालना है (अनिवार्य रूप से 1x1 की एक सीमा), फिर डेटा पर इंगित करने के लिए नामित श्रेणियों को अपडेट करें। मौजूदा एप्लिकेशन जो इसे एकीकृत करने जा रहा है पूरी तरह से सी ++ में लिखा गया है, इसलिए मैं आदर्श रूप से सी ++ समाधान की तलाश में हूं (इसलिए this thread सीमित उपयोगिता क्यों है)। यदि सब कुछ विफल हो जाता है, तो हमारे सी ++ ऐप के खिलाफ इसे जोड़ने का कोई तरीका है, तो मैं .NET समाधान के साथ जाऊंगा।एक्सेल स्प्रेडशीट्स प्रोग्रामेटिक रूप से संशोधित करने का सबसे अच्छा तरीका

एक आदर्श समाधान ओपन सोर्स होगा, लेकिन अब तक मैंने देखा है कि कोई भी नहीं (MyXls और XLSSTREAM) चुनौती के लिए प्रतीत होता है। मुझे Aspose.Cells की लग्जरी पसंद है, लेकिन यह .NET या Java के लिए है, सी ++ (और लागत का पैसा नहीं)। मुझे एक्सएलएसएक्स और एक्सएलएसबी प्रारूपों सहित वर्तमान में 97 से सभी एक्सेल प्रारूपों का समर्थन करने की आवश्यकता है। आदर्श रूप में, यह ओपनऑफिस, और (आउटपुट के लिए) पीडीएफ और एचटीएमएल जैसे प्रारूपों का भी समर्थन करेगा।

कुछ उपयोग-मामले मैं समर्थन करने की आवश्यकता:

  • पढ़ने और स्प्रेडशीट में किसी भी सेल, सूत्रों सहित संशोधित
  • बनाने, पढ़ने, संशोधित करने नामित श्रेणियों (पर्वतमाला खुद को ही नहीं, कोशिकाओं)
  • किसी सेल से अन्य लोगों के समूह (सशर्त स्वरूपण सहित) में स्वरूपण की प्रतिलिपि बनाना - हम डेटा के साथ भरने वाले सभी अन्य लोगों के लिए टेम्पलेट के रूप में एक सेल का उपयोग करेंगे।

कोई भी मदद जो आप मुझे उचित पुस्तकालय ढूंढने के लिए दे सकते हैं, वह बहुत अच्छा होगा। मैं विभिन्न सुझावों (मेरी पोस्ट में शामिल सहित) के बारे में कुछ प्रशंसापत्र भी सुनना चाहूंगा ताकि मैं अधिक जानकारी प्राप्त कर सकूं - उपयोग करने में आसान क्या है, बग-फ्री, सस्ता इत्यादि?

उत्तर

0

मैं Aspose.Cells का उपयोग करके समाप्त हुआ जैसा मैंने अपने मूल पोस्ट में उल्लेख किया था, क्योंकि यह सबसे आसान मार्ग जैसा प्रतीत होता था। मैं जिस तरह से निकला, उससे बहुत खुश हूं, और उनका समर्थन बहुत अच्छा है। मुझे सी # में इसके चारों ओर एक रैपर बनाना पड़ा जो मेरे सी ++ एप्लिकेशन में एक COM इंटरफेस निर्यात करता था।

3

सबसे सुरक्षित सुझाव केवल ओएलई का उपयोग करना है। यह COM का उपयोग करता है, जिसे .NET की आवश्यकता नहीं होती है।

http://en.wikipedia.org/wiki/OLE_Automation < - आधा रास्ते नीचे एक सी ++ उदाहरण है।

आपको कुछ कार्यक्षमताओं को उपयोगिता के लिए कार्यों में लपेटना पड़ सकता है, लेकिन यह वास्तव में काम करने के लिए बदसूरत नहीं है।

संपादित करें: बस जागरूक रहें कि आपको काम करने के लिए Excel की एक प्रति की आवश्यकता है। साथ ही, कुछ पहली पार्टी हैं। एच फाइलें जिन्हें आप एक्सेल के लिए विशिष्ट पा सकते हैं। (यह सभी विकिपीडिया आलेख में समझाया गया है)

0

क्या आपने पहले से ही Excel COM इंटरफेस का उपयोग करने का प्रयास किया है? स्पष्ट रूप से एक्सेल को मशीन पर स्थापित करने की आवश्यकता है, और यह एक दर्द है ...

0

मैं तर्क दूंगा कि आपके सी ++ एप्लिकेशन में जोड़ने के लिए COM इंटरऑप के साथ एक .NET समाधान सबसे अच्छा समाधान है। उनके साथ काम करने के दस वर्षों से अधिक समय में, मैंने कभी Excel के COM ऑटोमेशन को नहीं देखा है जो कहीं स्मृति को रिसाव नहीं करता है।

यदि आपको एक्सेल स्वचालित करने की आवश्यकता है, तो मैं Visual Studio Tools for Office की अनुशंसा करता हूं। यदि आपको स्वचालित करने की आवश्यकता नहीं है, केवल फ़ाइलों को संशोधित करें और वे फ़ाइलें Office 2007 प्रारूप में हो सकती हैं, तो आप ऐसा लाइब्रेरी ढूंढने से बेहतर हैं जो Excel को खोलने के बजाय फ़ाइलों को सीधे जोड़ता है।

2

मुझे नहीं पता कि यह आपके लिए एक विकल्प है, लेकिन नया कार्यालय 2007 प्रारूप ज़िप्ड एक्सएमएल प्रारूप में है, जो इसे अपने स्वयं के संशोधनों के लिए बहुत ही करने योग्य बनाता है। here for the specifications देखें।

1

आपकी आवश्यकताओं को पूरा करेगा और एक एपीआई है जो एक्सेल के समान है।

जब आप कोशिकाओं को सम्मिलित करते हैं, तो आपके परिभाषित नाम (और कोई अन्य सूत्र/चार्ट/आदि ...) स्वचालित रूप से नई सीमा (जैसे वे एक्सेल में होते हैं) के संदर्भ में तय किए जाएंगे। इसलिए आपको अपने परिभाषित नामों को अपडेट करने की आवश्यकता नहीं होगी (हालांकि परिभाषित नाम बनाने और अपडेट करने के लिए पूर्ण समर्थन है यदि आप यही करना चाहते हैं)।

स्प्रेडशीटगियर एक .NET घटक है, लेकिन आप अपना स्वयं का रैपर बना सकते हैं जो सी ++ से कॉल करने योग्य है।

आप see what our customers say कर सकते हैं और मुफ्त, पूरी तरह कार्यात्मक evalution here डाउनलोड कर सकते हैं।

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