2010-10-26 6 views
5

मैं स्प्रेडशीट :: SimpleExcel के साथ एक xls फ़ाइल जेनरेट करने का प्रयास कर रहा हूं जो किसी तृतीय पक्ष में परिभाषित फ़ंक्शन को कॉल करता है (ब्लूमबर्ग, यदि यह मायने रखता है)। अंतर्निहित WriteExcel पैकेज मुझे इसे लिखने नहीं देता है क्योंकि यह इस ऐड-इन फ़ंक्शन के बारे में नहीं जानता है। मैं अंतर्निहित कार्यों की विशाल हैश तालिका देखता हूं जो मॉड्यूल जानता है और संभावित रूप से इस फ़ंक्शन को जोड़ सकता है, लेकिन मुझे फ़ंक्शन के विशेषताओं, विशेष रूप से 'ptg कोड' नहीं पता है।तीसरे पक्ष के एड-इन फ़ंक्शंस को संदर्भित करते हुए एक्सेल स्प्रैडशीट उत्पन्न करता है

क्या यह निर्धारित करने का कोई तरीका है कि इस तीसरे पक्ष के फ़ंक्शन के पीटीजी कोड (मुझे लगता है कि यह एक ऑपोड की तरह कुछ है), या मॉड्यूल को ट्रिक करने का कोई तरीका है जिससे मुझे इन कार्यों को लिखने में मदद मिल सके इन विवरणों को जानना है? या कुछ तीसरी योजना जिसे मैंने नहीं सोचा है?

उत्तर

2

Spreadsheet::WriteExcelXML और Excel::Writer::XLSX तृतीय पक्ष फ़ंक्शंस के साथ एक्सेल फ़ाइलों को उत्पन्न करने में सक्षम होना चाहिए।

दोनों मॉड्यूल स्प्रेडशीट :: WriteExcel के समान इंटरफेस का उपयोग करते हैं हालांकि कम सुविधाओं के साथ।

+0

मैं इसे देख लूंगा। मुझे पता है कि आप WriteExcel के लेखक हैं, इसलिए प्रतिक्रिया के लिए धन्यवाद। – frankc

+0

WriteExcelXML काम किया। मुझे WriteExcelXML का उपयोग करने के लिए SimpleExcel को बदलना पड़ा, लेकिन इसे केवल एस/WriteExcel/WriteExcelXML/g और s/addworksheet/add_worksheet/g – frankc

+0

आवश्यक हो सकता है यदि आप मौका प्राप्त करते हैं तो आपको Excel :: Writer :: XLSX भी आज़मा सकते हैं और मुझे बताएं काम करता है। – jmcnamara

2

मुझे लगता है कि आपको Win32 :: OLE का उपयोग करने की आवश्यकता है और यह थोड़ा गन्दा है। प्रयास करें:

$xls->AddIns->Add($xll_path); 
$xls->RegisterXLL($xll_file); 

जहां $ xll_path ब्लूमबर्ग के लिए XLL का पूर्ण पथ है और $ xll_file सिर्फ XLL नाम है।

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