मैंने जेएक्सएल और पीओआई एपीआई की सहायता से जावा प्रोग्राम का उपयोग करके एक्सेल फ़ाइल को पढ़ और लिखना सीखा है। मैक्रोज़ की मदद से जावा प्रोग्राम चलाने के लिए संभव है?जावा प्रोग्राम चलाने के लिए माइक्रोसॉफ्ट एक्सेल मैक्रो
उत्तर
हां, यह संभव है।
वास्तव में कुछ तरीके हैं और मुझे उम्मीद है कि आप मेरे उदाहरण पसंद करेंगे।
इस प्रदर्शन करने के लिए, मैं एक कार्यक्रम है जहाँ कुछ पाठ यह के परिवर्तित संस्करण के साथ प्रतिक्रिया करता है तर्कों और कार्यक्रम के रूप में भेज रहा है बनाएँ। मैंने इसका एक चलने वाला जार बनाया। पहला उदाहरण तर्क से तर्क और मानक इनपुट से अन्य को पढ़ता है।
फ़ाइल Hello.java और H1.jar:
public class Hello {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Hello");
if (args.length > 0)
sb.append(' ').append(args[0]);
System.out.println(sb.append('.').toString());
}
}
फ़ाइल Hello2.java और H2.jar:
import java.util.Scanner;
public class Hello2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuilder sb = new StringBuilder("Hello");
sb.append(' ').append(sc.nextLine());
System.out.println(sb.append('.').toString());
}
}
आप उन्हें एक में बचा सकता है एकल जार, लेकिन फिर आपको बनाने की आवश्यकता है और use a manifest (यह थोड़ा अधिक है)।
अब एक्सेल में मैं एक मॉड्यूल और विंडोज स्क्रिप्ट होस्ट ऑब्जेक्ट का संदर्भ जोड़ता हूं। आप sleep
पसंद नहीं है, तो आप यह DoEvents
से बदल सकते हैं:
'add a reference to Windows Script Host Object Model
'for example : Tools-References
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub RunSleep(_
exec As WshExec, _
Optional timeSegment As Long = 20 _
)
Do While exec.Status = WshRunning
Sleep timeSegment
Loop
End Sub
Private Function RunProgram(_
program As String, _
Optional command As String = "" _
) As WshExec
Dim wsh As New WshShell
Dim exec As WshExec
Set exec = wsh.exec(program)
Call exec.StdIn.WriteLine(command)
Call RunSleep(exec)
Set RunProgram = exec
End Function
और यह मैं c:\
ड्राइव करने के लिए फ़ाइलों को बचाया और कोड का इस्तेमाल किया परीक्षण करने के लिए:
Public Sub Run()
Dim program As WshExec
Set program = RunProgram("java -jar ""C:\\H1.jar"" Margus")
Debug.Print "STDOUT: " & program.StdOut.ReadAll
Set program = RunProgram("java -jar ""C:\\H2.jar", "Margus")
Debug.Print "STDOUT: " & program.StdOut.ReadAll
End Sub
मेरे मामले मैं में
STDOUT:: नमस्ते Margus की एक प्रतिक्रिया मिलता है।
STDOUT: हैलो मार्गस।
आप पाया अगर यह उपयोगी है, मत भूलना वोट दें करने के लिए: डी
ध्यान दें कि परिवर्तनीय ** प्रोग्राम ** में अतिरिक्त उपयोगी जानकारी जैसे त्रुटि स्ट्रीम और रिटर्न कोड है। – Margus
@ श्रीहरि मेरा संदेह है, मैंने एक प्रोग्राम लिखा है जो पहले से मौजूद एक्सेल फ़ाइल से सेल्स से डेटा पढ़ता है और इसे संसाधित करता है और इसे उसी फ़ाइल में वापस रखता है। मैं जावा के लिए नया नहीं हूं लेकिन मैं निश्चित रूप से एक्सेल मार्कोस में नया हूं। क्या मुझे मैक्रो लिखना है? मुझे इसके बारे में कोई जानकारी नहीं है और ट्यूटोरियल आपको कोई जानकारी नहीं देते हैं। तो यह कैसे किया जा सकता है? –
एक्सेल में वीबीए पर्यावरण खोलने के लिए, आप "alt + f11" का उपयोग कर सकते हैं। वैकल्पिक तरीका डेवलपर रिबन विजुअल बेसिक बटन का उपयोग करना होगा। एक्सेल में प्रत्येक शीट के लिए कोड पेज हैं, लेकिन मॉड्यूल एक साझा स्थान की तरह है। ध्यान दें, कि मैं सीएमडी में प्रोग्राम चलाने के लिए कमांड ** जावा -जर "सी: \ एच 1.jar" मार्गस ** का उपयोग कर सकता हूं - बहुत कम कोड है जिसे लिखे जाने की आवश्यकता है। – Margus
आपका VBA एक फाइल करने के लिए उत्पादन में लिख सकते हैं और जावा फ़ाइल संशोधन के लिए समय-समय पर मतदान और फ़ाइल से पढ़ सकते हैं। और डेटा को दूसरी फ़ाइल के माध्यम से वीबीए में वापस लिखें। वीबीए - जावा एकीकरण असंभव के बगल में है जब तक कि आप सिर्फ system.execute (...) के माध्यम से खोल से जावा प्रोग्राम को आग नहीं करना चाहते हैं।
सत्य नहीं है। वीबीए-जावा एकीकरण असंभव से बहुत दूर है।कुछ समय पहले भी पुराना सन जावा एक्टिवैक्स ब्रिज था, जिसे दुर्भाग्य से ओरेकल द्वारा बंद कर दिया गया था (अभी भी जावा 1.4 के लिए उपलब्ध है: http://docs.oracle.com/javase/1.4.2/docs/guide/beans/ axbridge/developerguide /)। लेकिन अभी भी प्रौद्योगिकियां उपलब्ध हैं। Obba http://www.obba.info का उपयोग वीबीए से किया जा सकता है। Xlloop भी इस्तेमाल किया जा सकता है। –
मैं इसे का उपयोग किया है .. ध्यान दें, javaw का उपयोग अन्यथा एक काले रंग की खिड़की
Dim result As String
Dim commandstr As String
commandstr = "javaw -jar somejar someparameter"
' try with or without cast to string
result = CStr(shellRun(commandstr))
'somewhere from SO but forget.. sorry for missing credits
Public Function ShellRun(sCmd As String) As String
'Run a shell command, returning the output as a string'
Dim oShell As Object
Set oShell = CreateObject("WScript.Shell")
'run command'
Dim oExec As Object
Dim oOutput As Object
Set oExec = oShell.exec(sCmd)
Set oOutput = oExec.StdOut
'handle the results as they are written to and read from the StdOut object'
Dim s As String
Dim sLine As String
While Not oOutput.AtEndOfStream
sLine = oOutput.ReadLine
If sLine <> "" Then s = s & sLine & vbCrLf
Wend
ShellRun = s
End Function
प्रश्न जावा प्रोग्राम – user7294900
लिखना था टिप्पणी के लिए धन्यवाद लेकिन सवाल यह था कि 'क्या मैक्रोज़ की मदद से जावा प्रोग्राम चलाने के लिए संभव है?' और यह समाधान नींद-विधि के बिना करता है और साथ ही मैंने जावा के बजाए जाव की ओर इशारा किया – mschwehl
- 1. एक्सेल में वीबीए मैक्रो एसक्यूएल सम्मिलन कथन चलाने के लिए
- 2. स्टैंड अकेले एक्सेल मैक्रो
- 3. माइक्रोसॉफ्ट एक्सेल
- 4. एक्सेल वीबीए मैक्रो
- 5. एक्सेल वीबीए मैक्रो
- 6. एक्सेल मैक्रो - कॉमा पंक्तियाँ
- 7. एक्सेल मैक्रो (एडीओडीबी)
- 8. कैसे एक्सेल मैक्रो कोड
- 9. एक्सेल वीबीए: एक्सेल मैक्रो एक PowerPoint
- 10. प्रोग्राम एक्सेल
- 11. सी प्रोग्राम ऑडियो फ़ाइल चलाने के लिए
- 12. वीबीए एक्सेल मैक्रो एक सेल
- 13. एकाधिक शब्द को हाइलाइट करने के लिए माइक्रोसॉफ्ट वर्ड मैक्रो
- 14. माइक्रोसॉफ्ट एक्सएमएल एक्सेल - पंक्ति स्वरूपण
- 15. माइक्रोसॉफ्ट इंटरऑप: एक्सेल कॉलम नाम
- 16. मैक्रो आयात करने के लिए एक एक्सेल गैर सक्रिय वर्कशीट
- 17. एक्सेल फ़ाइल और प्रोग्राम संरचना
- 18. वीबीस्क्रिप्ट एक एक्सेल फ़ाइल के भीतर एक मैक्रो लिखने के लिए
- 19. एक्सेल 2010 मैक्रो प्रोग्रामेटिक रूप से
- 20. एक्सेल मैक्रो - बहुत अधिक लाइन निरंतरता
- 21. शुरुआती के लिए जावा
- 22. जावा getRuntime()। Exec() को तर्क के साथ कमांड लाइन प्रोग्राम चलाने के लिए कैसे प्राप्त करें?
- 23. सी ++ प्रोग्राम को चलाने के लिए क्या आवश्यक है?
- 24. अन्य प्रोग्राम चलाने के लिए पायथन का उपयोग
- 25. मैक ओएस टर्मिनल में रूबी प्रोग्राम को चलाने के लिए
- 26. एक्सेल VBA: प्रोग्राम के रूप में range.copy
- 27. पृष्ठभूमि में चलाने के लिए जावा में धागे बनाएं
- 28. विंडोज जावा में आदेश चलाने के लिए और
- 29. जावा प्रोग्राम चलाने के लिए एक्लिप्स द्वारा उपयोग की जाने वाली कमांड लाइन को कैसे जानें?
- 30. जावा प्रोग्राम चलाने के लिए समय निकालने का तरीका कैसे प्राप्त करें?
चेक इस पॉपिंग है - [http://stackoverflow.com/questions/5297341/calling-java-library-jar-from-vba-vbscript-visual-basic-classic][1] [1]: http: // stackoverflow.com/questions/5297341/calling-java-library -jar-from-vba-vbscript-visual-basic-classic – sreehari
ये सभी चर्चाएं बताती हैं कि यह संभव नहीं है। –
इस बारे में कैसे? http://stackoverflow.com/questions/10879757/vba-shell-java-call-errors – JimmyPena