2015-03-08 10 views
6

को बायपास करके पाइथन में डीडीई के माध्यम से डेटा प्राप्त करें मेरे पास एक डेटा प्रदाता है जो एक डीडीई लिंक प्रदान करता है (जिसे मैं एक्सेल में उपयोग कर सकता हूं) और एक एक्सई फ़ाइल जो पृष्ठभूमि में चलती है जो डाटा मैनेजर के रूप में कार्य करती है (सुनिश्चित नहीं है कि यह जिसे डीडीई सर्वर कहा जाता है) और डीडीई लिंक उस exe फ़ाइल से जोड़ता है।एक्सेल

मैं एक्सेल को बाईपास करना चाहता हूं और सीधे पायथन में काम करना चाहता हूं। मैं डीडीई के बारे में कुछ उदाहरण देखा था, लेकिन वे अजगर 2 में सभी थे और मैं पायथन 3.

उपयोग कर रहा हूँ मैं ऐसा ही कुछ कर नेट पर उदाहरण देखा:

import win32ui 
import dde 
... 
... 
server = dde.CreateServer() 
server.Create("SomeName") 
... 

लेकिन इन उदाहरणों बनाने का तरीका बताते हैं डीडीई सर्वर। मेरे मामले में, वहाँ एक मौजूदा exe डेटा प्रबंधक है वह यह है कि (डीडीई सर्वर हो सकता है?) और एक्सेल के भीतर एक मेनू जो के माध्यम से मैं प्राप्त कर सकते हैं वहाँ इस तरह के

' = DataProviderFunc1(Param1, Param2)' 
' = DataProviderFunc2(Param1, Param2)' 

मैं में एक कोड लिखना चाहते हैं के रूप में डेटा पाइथन जो एक्सेल शीट खोलने के बजाय सीधे ' = DataProviderFunc1(Param1, Param2)' आदि का आउटपुट प्राप्त करता है और फिर पाइथन को एक्सेल शीट से आउटपुट पढ़ने देता है।

क्या यह संभव है?

मैं पायथन 3.4 का उपयोग कर रहा हूं। धन्यवाद

डीडीई मॉड्यूल पर बहुत कम दस्तावेज़ प्रतीत होता है, उदाहरण के लिए http://docs.activestate.com/activepython/2.4/pywin32/dde.html

+1

क्या आपने कभी अपना जवाब प्राप्त किया है? –

उत्तर

0

कि मैंने पाया प्रलेखन के सबसे करीब बातें यहां हैं: client example, server example

उदाहरण भी टिप्पणी की नहीं कर रहे हैं मुझे का हिस्सा है कि मैं क्या एक टिप्पणी की उदाहरण के साथ समझ गए होंगे करते हैं:

import win32ui 
import dde 

#apparently "servers" talk to "servers" 
server = dde.CreateServer() 
#servers get names but I'm not sure what use this name 
#has if you're acting like a client 
server.Create("TestClient") 
#use our server to start a conversation 
conversation = dde.CreateConversation(server) 

# RunAny is the server name, and RunAnyCommand is the topic 
conversation.ConnectTo("RunAny", "RunAnyCommand") 
# DoSomething is the command to execute 
conversation.Exec("DoSomething") 
# For my case I also needed the request function 
# request somedata and save the response in requested_data. 
requested_data = conversation.Request("somedata") 

मुख्य कार्य निष्पादन और अनुरोध प्रतीत होते हैं। दोनों आपके विशेष मामले में स्ट्रिंग लेते हैं, आपको यह पता लगाना होगा कि आपका सर्वर क्या चाहता है।