excel宏 java,Microsoft Excel宏运行Java程序
I have learnt to read and write an Excel file using a Java program with the help of Jxl and POI API. Is it possible to run a Java program with the help of macros?
解决方案
Yes, it is possible.
There are quite a few ways actually and I hope you like my examples.
To demonstrate this, I create a program where some text is send as arguments and program responds with an altered version of it. I made a runnable jar of it. First example reads the argument from args and other from standard input.
File Hello.java and 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());
}
}
File Hello2.java and 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());
}
}
You can save them in a single jar, but then you need create and use a manifest (that's a bit overkill).
Now in Excel I add a module and a reference to Windows Script Host Object. If you do not like the sleep, then you can replace it with 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
And to test it I saved the files to c:\ drive and used the code:
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
In my case I get a responce of :
STDOUT: Hello Margus.
STDOUT: Hello Margus.
If you found this useful, do not forget to upvote :D
excel宏 java,Microsoft Excel宏运行Java程序相关推荐
- Devart Excel 插件 Crack,Microsoft Excel 和非常普通的 Excel 电子表格
Devart Excel 插件 Crack,Microsoft Excel 和非常普通的 Excel 电子表格 Devart Excel 插件允许开发人员的用户使用云以及 Microsoft Exce ...
- 【java】使用cmd运行java程序
做作业时,有这样一道题: 在命令行状态下,如果命令"java Hello"成功运行了程序并打印出Hello world,那么下面哪个叙述是错误的?( ) A) 当前目录中一定存在 ...
- 什么app可以打开java文件_notepad++可运行Java文件版
notepad++可运行Java文件版,是大神对notepad++进行了在处理的版本,对于使用notepad++的新手来说,这款个版本实在是好用到爆,用notepad++写代码比用记事本好操作,而且还 ...
- 在linux怎样运行java,怎么在linux运行java
怎么在linux运行java [2021-02-01 00:44:14] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...
- linux java执行_linux下运行java
3. 编译运行命令 编译 javac [-d] [-o] [-verbose] [-classpath][-sourcepath] -d, 指定生成的.class文件存放目录,一般省略则默认放在jav ...
- 怎么在本地运行java项目,eclipse怎么运行java web项目?
Eclipse是用来做开发的自由集成开发环境,这也是很多java程序员会使用的开发环境,所以可以使用eclipse创建项目并运行java web项目,那eclipse怎么运行java web项目?接下 ...
- java苹果_iPhone上运行Java 苹果没兴趣 Sun单干
3月10日国际报道 Sun正在为苹果iPhone开发一款JVM(Java虚拟机),并计划在6月份发布这款软件,使Java应用软件能够在iPhone上运行. Sun负责Java研究的副总裁克莱因上周表示 ...
- java linux at_linux下运行java程序报错,求大神解答
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/loc ...
- java in thread main_linux运行java项目中的main方法,报错:Exception in thread main jav
在windows环境运行正常的java netty项目部署到linux中调用main方法报错,修改过springmvc版本和jdk版本都没用,总是报 java.lang.ExceptionInInit ...
最新文章
- 【完结】利用 Composer 完善自己的 PHP 框架(三)——Redis 缓存
- 安卓程序如何保证低内存下依然存在
- 【DP】[NOI2013]书法家
- MyEclipse/Eclipse 中使用javap
- python如何画出多个独立的图片_python实现在一个画布上画多个子图
- 手把手实现一条延时消息
- bat脚本保存dir结果_Tomcat的启停脚本源码解析
- SQOOP 导出SQL SERVER中数据
- Android MediaPlayer播放raw资源封装类
- 电子科学与技术跨考计算机,关于跨考计算机的纠结
- vFlat Scan – 可能是最快捷的纸质书扫描应用,一次 2页,居然还能移除手指头[iOS/Android]
- 基于go语言的史上最流弊的学生成绩管理系统
- 教您用CSS的鼠标手势实现任意标签鼠标划过变成小手
- mysql数据库中key 、primary key 、unique key 与index区别
- 微信小程序登录服务器失败,微信小程序后台登录一直失败
- oa系统用什么云服务器,oa系统用什么云服务器
- windows10系统设置选项里没有触摸板选项
- 代数合并同类项计算机步骤,代数式(合并同类项)
- 面对未来,我在黑夜中努力奔跑.
- 前端常见功能测试用例
热门文章
- 想学游戏建模要从哪里开始?,外包私活怎么接?
- gvdp哪个工厂用_和汽车主机厂打交道,你不可不知这些英文缩写!实用!大伙速览速记!...
- java玫瑰花代码_玫瑰花c语言代码
- 浪潮刀片服务器型号,浪潮刀片服务器.pdf
- 【opencv3】滑动条调节RGB颜色阈值并输出滑动条的值
- android 老人机模式,如何将智能手机切换成老人机模式
- excel表格怎么求时间差值_excel表格,如何计算日期的天数或时间差
- Flask框架二 Jinja2
- dolphinscheduler v2.0.1 master和worker执行流程分析(一)
- 【国庆福利】中奖名单公布