我有一张excel表,所有的计算都完成了 . 我想在java中创建一个GUI,我可以输入在excel表中完成计算所需的值 . 输出(结果)以及在Excel工作表中获得的图表应显示在GUI框架中 . excel表应该在后台运行,用户不可见 .
如果您需要Microsoft Excel集成JExcel可能对您有帮助 .
如果必须使用Excel进行计算,则应该使用VBA作为GUI .
我不确定http://www.exceleverywhere.com/java.htm是否是你需要的 .
顺便说一句,Open Office有一些用于评估excel(和其他Office)文件的远程API,Logical Doc使用此功能 . 您可以在其社区版源代码中找到解决方案 .
我找到了这个,Using COM from Java.你应该可以使用microsoft vitrual machine和microsoft sdk for java 4.0来使用Excel中嵌入的自动化服务器("Excel.Application") .
如果您不想使用Microsoft虚拟机和SDK来编译和运行代码,还可以:JACOB: A JAva-COM Bridge,它可以从任何VM运行 .
直接从上面链接的JACOB页面中获取:
以下示例使用Microsoft®Excel作为自动化服务器:
import com.ms.com.*; import com.ms.activeX.*; public class DispatchTest { public static void main(String[] args) { ActiveXComponent xl = new ActiveXComponent("Excel.Application"); Object xlo = xl.getObject(); try { System.out.println("version="+xl.getProperty("Version")); System.out.println("version="+Dispatch.get(xlo, "Version")); xl.setProperty("Visible", new Variant(true)); Object workbooks = xl.getProperty("Workbooks").toDispatch(); Object workbook = Dispatch.get(workbooks,"Add").toDispatch(); Object sheet = Dispatch.get(workbook,"ActiveSheet").toDispatch(); Object a1 = Dispatch.invoke(sheet, "Range", Dispatch.Get, new Object[] {"A1"}, new int[1]).toDispatch(); Object a2 = Dispatch.invoke(sheet, "Range", Dispatch.Get, new Object[] {"A2"}, new int[1]).toDispatch(); Dispatch.put(a1, "Value", "123.456"); Dispatch.put(a2, "Formula", "=A1*2"); System.out.println("a1 from excel:"+Dispatch.get(a1, "Value")); System.out.println("a2 from excel:"+Dispatch.get(a2, "Value")); Variant f = new Variant(false); Dispatch.call(workbook, "Close", f); } catch (Exception e) { e.printStackTrace(); } finally { xl.invoke("Quit", new Variant[] {}); } } }
目前,代码只能使用JVC(Microsoft的编译器)进行编译,并且只能在JVIEW(Microsoft的VM)下运行 . 但是,如果安装了JACOB发行版,则可以使用以下代码替换两个顶行:
import com.jacob.com.*; import com.jacob.activeX.*;
现在,您可以使用任何Java编译器对其进行编译,并使用任何Win32平台上的任何Java VM运行它 .
谷歌是你的朋友 . 以下是一些调查结果:JExcelApi有一个很好的例子here和Apache POI这看起来也很强大
5 回答
如果您需要Microsoft Excel集成JExcel可能对您有帮助 .
如果必须使用Excel进行计算,则应该使用VBA作为GUI .
我不确定http://www.exceleverywhere.com/java.htm是否是你需要的 .
顺便说一句,Open Office有一些用于评估excel(和其他Office)文件的远程API,Logical Doc使用此功能 . 您可以在其社区版源代码中找到解决方案 .
我找到了这个,Using COM from Java.你应该可以使用microsoft vitrual machine和microsoft sdk for java 4.0来使用Excel中嵌入的自动化服务器("Excel.Application") .
如果您不想使用Microsoft虚拟机和SDK来编译和运行代码,还可以:JACOB: A JAva-COM Bridge,它可以从任何VM运行 .
直接从上面链接的JACOB页面中获取:
以下示例使用Microsoft®Excel作为自动化服务器:
目前,代码只能使用JVC(Microsoft的编译器)进行编译,并且只能在JVIEW(Microsoft的VM)下运行 . 但是,如果安装了JACOB发行版,则可以使用以下代码替换两个顶行:
现在,您可以使用任何Java编译器对其进行编译,并使用任何Win32平台上的任何Java VM运行它 .
谷歌是你的朋友 . 以下是一些调查结果:JExcelApi有一个很好的例子here和Apache POI这看起来也很强大